0
如果我运行下面的Ruby代码:红宝石消息自
class Foo
def foo=(something)
puts "It's a #{something}"
end
def foo_assign
self.foo = "bar"
end
end
f = Foo.new
f.foo_assign
输出是:It's a bar
。
在另一方面,如果我运行代码:
class Foo
def foo=(something)
puts "It's a #{something}"
end
def foo_assign
foo = "bar"
end
end
f = Foo.new
f.foo_assign
没有输出。 foo
和self.foo
是如何给出的?
'foo ='是一个局部变量赋值。 – Ilya
@Ilya这是否意味着我需要一个明确的接收器来指定赋值方法? – ljnissen