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