给定此代码:
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
(and..=)的方法,为什么tfoo
找不到该方法?如果我将其更改为self.my_variable
,它会起作用,但为什么?self
不是默认的接收者吗?