轉到內容

Ruby 程式設計 / 參考 / 內建函式

來自 Wikibooks,面向開放世界的開放書籍

預設情況下,有多種方法可用。您可以透過在 irb 會話中執行 methods 來檢視可用方法,例如

>> class A; end
>> A.instance_methods

[:nil?, :===, :=~, :!~, :eql?, :class, :clone, :dup, :taint, :tainted?, :untaint, :untrust, :untrusted?, :trust, :freeze, :frozen?, :to_s, :inspect, :methods, :singleton_methods, :protected_methods, :private_methods, :public_methods, :instance_variables, :instance_variable_get, :instance_variable_set, :instance_variable_defined?, :instance_of?, :kind_of?, :is_a?, :tap, :send, :public_send, :respond_to?, :extend, :display, :method, :public_method, :define_singleton_method, :hash, :__id__, :object_id, :to_enum, :enum_for, :gem, :==, :equal?, :!, :!=, :instance_eval, :instance_exec, :__send__]

您可以透過檢查物件層級來檢視大多數這些方法的定義位置

>> A.ancestors
=> [A, Object, Kernel, BasicObject]

1.9 引入了更多方法,如 __method__(當前方法名稱)以及 require_relative,該方法需要相對於當前檔案目錄的檔案。

若要檢視每個方法的定義位置,您可以執行類似下方內容

>> A.instance_methods.map{|m| [m,  A.instance_method(m).owner] }
=> [[:nil?, Kernel], ...
華夏公益教科書