在scala REPL中使用什么命令来内省实例?

时间:2011-01-15 09:19:55

标签: python scala

在python中:

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

是否有一种等效方式 - 即dir()函数 - 使用scala REPL中的实例执行此操作?

2 个答案:

答案 0 :(得分:8)

按下制表符键时,REPL会显示您可以在对象上调用的方法:

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

有关REPL外观here的更多信息。

答案 1 :(得分:7)

为什么tab-completion更适合作为REPL中的帮助(一旦你编写了方法名,它也会显示参数!),等同于dir的技术是:

s.getClass.getMethods