2011-01-15 1 views
5

Trong python:Lệnh nào để sử dụng để quan sát các cá thể trong scala REPL?

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

Có một cách tương đương - ví dụ: dir) chức năng (- để làm điều này với trường hợp trong REPL scala?

+0

Bạn cần một cái gì đó tốt hơn so với hoàn thành tab? – Debilski

+0

@Debilski, vâng, nếu f.e. bạn đang sử dụng cái gì khác hơn là thiết bị đầu cuối thuần túy. Ví dụ. SublimeREPL – Ufos

Trả lời

8

Khi bạn nhấn bộ phận của máy đánh chữ-key REPL cho bạn thấy phương pháp mà bạn có thể gọi vào một đối tượng:

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 

Để biết thêm thông tin về REPL trông here.

7

Tại sao tab hoàn thành là đầy đủ hơn như một sự giúp đỡ từ bên trong REPL (và nó cho thấy các thông số quá, một khi bạn đã viết tên phương pháp!), Tương đương với kỹ thuật để dir là:

s.getClass.getMethods 
+0

Không hoàn toàn, vì dir() sẽ nhận mọi thứ, bao gồm biến thành viên, v.v. –

+0

@Mike Đó là tranh luận, vì Scala không có biến thành viên ngoại trừ một tạo phẩm triển khai. Mọi thứ có thể sử dụng được trong đối tượng Scala đều có sẵn như một phương thức. –