2011-01-15 19 views
5

en Python:¿Qué comando usar para introspectar instancias en scala REPL?

>>> s = "abc" 
>>> dir(s) 
['__add__', '__class__', '__contains__', '__delattr__', ... 

¿Hay una manera equivalente - es decir, la función dir() - para hacer esto con casos en el REPL Scala?

+0

¿Te necesita algo mejor que la finalización de pestañas? – Debilski

+0

@Debilski, sí, si f.e. estás usando algo más que una terminal pura. P.ej. SublimeREPL – Ufos

Respuesta

8

Cuando se pulsa la tecla de tabulación de la réplica muestra los métodos que se pueden llamar en un objeto:

scala> val s = "abc" 
s: java.lang.String = abc 

scala> s.<tab> 

+      asInstanceOf   charAt 
codePointAt   codePointBefore  codePointCount 
compareTo    compareToIgnoreCase concat 
contains    contentEquals   endsWith 
equalsIgnoreCase  getBytes    getChars 
indexOf    intern    isEmpty 
isInstanceOf   lastIndexOf   length 
matches    offsetByCodePoints regionMatches 
replace    replaceAll   replaceFirst 
split     startsWith   subSequence 
substring    toCharArray   toLowerCase 
toString    toUpperCase   trim 

Para obtener más información sobre el REPL mirar here.

7

Por qué para rellenar la ficha es más adecuada como ayuda desde dentro REPL (y que muestra los parámetros también, una vez que haya escrito el nombre del método!), El equivalente técnico a dir es:

s.getClass.getMethods 
+0

No del todo, ya que dir() recibirá todo, incluyendo las variables miembro etc. –

+0

@ Mike Eso es discutible, puesto Scala no tiene variables miembro, excepto como un artefacto aplicación. Todo lo que se puede usar en un objeto Scala está disponible como un método. –

Cuestiones relacionadas