【发布时间】:2009-03-14 09:56:14
【问题描述】:
我正在尝试调用我的类属性编写器之一,但由于某种原因它从未被调用。这里有一些代码可以让这更清楚:
class Test
attr_reader :test
def test=(val)
puts 'Called'
@test = val
end
def set_it(val)
test = val
end
end
obj = Test.new
obj.set_it 5
puts obj.test
=> nil
最后的 puts 语句输出 'nil'。向 test= 添加调试语句表明它永远不会被调用。我做错了什么?
更新
我部分重写了这个问题,因为我在写这个问题时并没有真正理解这个问题。所以这个问题现在更加笼统了。
【问题讨论】:
-
仅供参考,您可以使用
attr_accessor :test生成这些 getter/setter -
我知道,这只是一个例子。在代码中,我使用 getter 和 setter 做更多的工作。
标签: ruby