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