考慮下面的Ruby代碼:在Ruby中的單例類中調用單例方法?
module MyModule
class << self
def process_item(item)
item.capitalize
end
def foo=(item)
@foo_ref=process_item(item)
end
def foo
@foo_ref
end
self.foo = "initial foo"
end
end
我想設置的單類定義默認foo_ref
變量。如果我改變self.foo = "Initial foo"
到foo = "Initial foo"
然後我創建了單獨的類中的局部變量,而不是調用setter方法
singleton class': undefined method `foo=' for #(NoMethodError)
:但是,Ruby解釋引發了以下錯誤。
此外,我意識到我可能必須將process_item
方法放在單元類定義之外的模塊定義中,以便它不會成爲單例方法,而是輔助方法。
該代碼的正確方法是什麼(能夠在單例類定義中調用單例方法,並且在單例類定義中使用輔助方法)?
在類定義中,'self'是類,所以就像錯誤消息所說的那樣,您正在對單例類調用'foo ='方法,並且此方法不存在。 –