鑑於這種代碼:爲什麼不解決這些方法?
class Something
attr_accessor :my_variable
def initialize
@my_variable = 0
end
def foo
my_variable = my_variable + 3
end
end
s = Something.new
s.foo
我得到這個錯誤:
test.rb:9:in `foo': undefined method `+' for nil:NilClass (NoMethodError)
from test.rb:14:in `<main>'
如果attr_accessor
創建一個名爲my_variable
方法(和.. =),爲什麼不能foo
找到方法?如果我將其更改爲self.my_variable
,它會起作用,但爲什麼?是不是self
的默認接收器?
WRT獎勵:您仍然需要直接設置伊娃或使用setter。這只是設置本地。 – Chuck 2011-05-30 04:06:46