3
我明白,Ruby支持调用方法的简短风格,即:1.+(2)
与1+2
相同(我仍然认为它是否与我的情况有关),但我真的很困惑为什么attr_accessor
方法既不重复(当然,他们不应该作为writer
在其名称与=
不同)也不它们与任何不同(除了writer
需要的参数),而访问它们外面活动对象。attr_accessor或自定义方法重复方法名称混淆
我的问题是包含在这个代码(在第二个评论)
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)
时的值。
感谢更换两种方法
#number
和#number=
,但为什么这个代码不工作然后? 'def show =(str) puts str end show =“confused”' – Davit 2013-03-16 23:20:02Ruby将语句show =“confused”设置为局部变量,而不是方法调用,因为没有对象+ 'show'前的句号('.')。如果你说'object.show ='confused'',它将它解释为一个方法调用,但没有'object.'它只是设置一个局部变量 – 2013-03-16 23:20:51
没关系,但'show =(“confused”)'既不可用,请告诉我这太 – Davit 2013-03-16 23:22:04