这是代码:
class Something
attr_accessor :x
def initialize(x)
@x = x
end
def get_x
x
end
end
something = Something.new(5)
something.get_x # => 5
Run Code Online (Sandbox Code Playgroud)
如果x只是get_x方法中的局部变量,为什么解释器返回5 ?谢谢
x也是一种方法. attr_accessor :x增加了x=和x你的类.所以,get_x正在调用x方法,并返回值@x.有关详细信息,请参阅http://www.rubyist.net/~slagell/ruby/accessors.html.