0
難道你們知道是否有可能知道該方法在什麼類中定義?紅寶石。哪個類定義了一個方法?
例如,
to_a在可枚舉而在Numeric或其他地方可能定義。是否有與類對象一樣的功能:
=> aaa=[1,2,3,4,5]
=> aaa.class
=> Array
是否有像「defined_in?」這樣的方法?要了解在哪個類中定義了一個方法?
=> to_a.defined_in?
難道你們知道是否有可能知道該方法在什麼類中定義?紅寶石。哪個類定義了一個方法?
例如,
to_a在可枚舉而在Numeric或其他地方可能定義。是否有與類對象一樣的功能:
=> aaa=[1,2,3,4,5]
=> aaa.class
=> Array
是否有像「defined_in?」這樣的方法?要了解在哪個類中定義了一個方法?
=> to_a.defined_in?
在Ruby 1.9及更高版本上,您可以使用Method#source_location
。在Ruby 1.8上,有一個支持此功能的gem ruby18_source_location。
請參閱https://stackoverflow.com/a/13015691/260122另一個解答同一問題,以便更好地討論分析源代碼的其他方法,包括調試器。
編輯:對不起,我誤解了你的問題。要找出什麼類或模塊定義了一種方法,請使用Method#owner
。如:
> %w(a a a).method(:to_a).owner
=> Array