调用 ruby 实例方法
calling ruby instance method
class R
def initialize(number)
@number = number
end
attr_accessor :number
end
r = R.new(3)
r.number => 3
r.@number => syntax error
r.(@number) => undefined method call
为什么实例变量不能这样调用?
据我所知感谢 attr_accessor
def number
@number
end
所以
r.number
方法应该 return self.@number
即 r.@number
我错过了什么?
r.number
method should return self.@number
which is r.@number
没有。 number
方法的定义中没有任何地方说 self.@number
。它说:@number
。它应该 return @number
.
的值
@number
是实例变量,不是方法。你不能调用它(像那样或以任何其他方式),你只能从适当的范围内引用它。
class R
def initialize(number)
@number = number
end
attr_accessor :number
end
r = R.new(3)
r.number => 3
r.@number => syntax error
r.(@number) => undefined method call
为什么实例变量不能这样调用?
据我所知感谢 attr_accessor
def number
@number
end
所以
r.number
方法应该 return self.@number
即 r.@number
我错过了什么?
r.number
method should returnself.@number
which isr.@number
没有。 number
方法的定义中没有任何地方说 self.@number
。它说:@number
。它应该 return @number
.
@number
是实例变量,不是方法。你不能调用它(像那样或以任何其他方式),你只能从适当的范围内引用它。