我确实理解Ruby支持调用方法的简写风格,即:1.+(2)
与1+2
(我仍然认为它是否与我的情况有关),但我真的很困惑为什么attr_accessor
方法既不重复(嗯,它们不应该是,因为名称writer
不同),在活动对象之外访问它们时=
也没有任何不同(除了writer
需要参数)。
我的问题包含在此代码中(在第二条评论中)
class Test
def initialize(number)
@number = number
end
def number
@number
end
def number=(n)
@number = n
end
end
t = Test.new(12)
puts t.number # => 12
t.number = 13 # Why does it do what t.number=(13) should do
puts t.number # => 13
我想知道为什么t.number = 13
有效,当它指向一个应该只返回一个数字的方法时,而且当t.number=(13)
它不被调用时它如何设置一个新值。