下面的代碼返回一個錯誤:問題與Ruby類方法的定義
class ABC
def self.method1()
method2
end
def method2
end
end
ABC.method1
NameError: undefined local variable or method `method2' for ABC:Class
但是,下面的代碼工作正常:
class ABC
def initialize
method2
end
def method2
end
end
ABC.new
是否初始化需要使用爲了正確定義班級內的所有方法?第一個代碼塊有什麼問題?
語言評論:'靜態'是一個技術術語,它值得了解,但在Ruby本身中很少使用。在Ruby中,調用這種方法最明確的方法是'單例方法',或'對象的單例類的實例方法'。類的Singleton方法(它們本身就像任何其他對象一樣)常常被暱稱爲「類方法」,以便將它們與類的實例方法區分開來。出於類似的原因,模塊的單例方法被暱稱爲「模塊方法」。 – 2013-04-28 13:46:54