调用 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.@numberr.@number

我错过了什么?

r.number method should return self.@number which is r.@number

没有。 number 方法的定义中没有任何地方说 self.@number。它说:@number。它应该 return @number.

的值

@number 是实例变量,不是方法。你不能调用它(像那样或以任何其他方式),你只能从适当的范围内引用它。