2009-12-14 33 views
11

如何查看紅寶石中所有可用的方法。當我輸入File時,我正在使用aptana IDE。沒有方法顯示。我來自日食/ java背景。查看可用方法ruby

感謝

回答

2

您可以在交互式Ruby解釋器調用File.methods看到所有可用的方法。我不確定在你使用的IDE中是否有方法,因爲我之前沒有使用它。

23

有幾種方法:

obj.methods 
obj.public_methods 
obj.private_methods 
obj.protected_methods 
obj.singleton_methods 

更新

  1. 要想從所有繼承的方法分開對象的方法,你可以這樣做:

    obj.methods(假)

  2. As坦帕斯在評論中提到,下面的命令非常有用,從對象(基類)除了得到當前對象方法的繼承方法:

    obj.methods - Object.methods

+5

我覺得'obj.methods - Object.methods'很有用。 – Geo 2009-12-14 16:25:50

+1

我剛纔想出了'puts obj.methods'在單獨的行上列出 – ZMorek 2011-11-25 01:44:24

+0

詳細闡述了Tempus的觀點,如果您使用第三方對象(來自gem或某物)並且您執行了'obj_instance.methods - obj_instance .class.methods'來找出那個實例對 – Edmund 2013-12-19 16:52:07

3

如果你有一個運行的Ruby解釋器,<object>.methods將顯示對象上的可用方法。在Eclipse中,當我輸入File.時,直到我執行了內容輔助命令(CTRL +空格)時才發生任何事情。那時我確實得到了一個方法列表。

+0

的響應。 Ctrl空間適合我。不幸的是,似乎沒有任何與這些方法相關的文檔?我看到的只是他們的名字和參數。這是ruby IDE的弱點嗎? – user231413 2009-12-14 16:32:39

+0

我收到關於Kernal方法的文檔。這可能與ruby文檔存在與否有關 – 2009-12-15 14:29:29

4

你可以通過true的方法,如果你想忽略超中定義的方法:

obj.methods(true) 
obj.public_methods(true) 
obj.private_methods(true) 
obj.protected_methods(true) 
obj.singleton_methods(true) 

或者,如果你只是想刪除的Object類中定義的最常用的方法,你要追加- Object.methods- Object.instance_methods,具體取決於obj是類還是類的實例。

3

我也會注意到obj.methods沒有返回方法名的排序,所以你可能想要做obj.methods.sort