我正在嘗試將某個模塊混合到一個類中,並且我希望某些方法表現爲類方法,其他方法表示爲實例方法。class <<模塊中的表示法
不過,我不希望這兩個include
和extend
模塊。我寧願只是include
而已。
當我換我想在這個符號類的方法方法,它的工作原理:
class <<
# ...
end
然而,當我使用這個符號不工作:
class << self
# ...
end
我懷疑self
關鍵字正在建立對模塊的顯式綁定,而不是它被混入的類。但我還沒有看到任何文檔建議在使用class <<
表示法時關閉self
關鍵字。
有誰知道這是怎麼回事?
更新:這是爲了更清楚一些示例代碼:
module M
class <<
def class_method
puts "From inside the class_method"
end
end
def instance_method
puts "From inside the instance_method"
end
end
class Object
include M
end
class C
end
C.class_method
obj = C.new
obj.instance_method
呵呵,我錯過了什麼嗎? 'class << end'是一個語法錯誤。 – sepp2k