假设我有一个这样的模块:
module MyAssigments
def dummy_assignment=(value)
puts "it's not assigned #{value}"
end
end
和一个包含它的类:
class MyClass
include MyAssigments
def x=(value)
dummy_assignment=(value)
end
end
然后
o = MyClass.new
o.x="anything"
在屏幕上不打印任何内容,为什么?
答案 0 :(得分:3)
Ruby在这里有一个语法/配对的怪癖:使用self
的assginemnt方法必须明确限定:
def x=(value)
self.dummy_assignment=value
end
没有self.
部分,ruby假定它是对局部变量的赋值。