作者EvilBeauty (邪惡美麗)
看板Ruby
標題[問題] 關於 類別方法 attr_reader
時間Mon Nov 2 13:58:39 2015
你們好,
我想請問,在ruby裡面的attr_reader ..等方法。
如以下範例:
-----------------------------------------------
class Person
attr_accessor :name
def initialize(name)
@name = name
end
end
-----------------------------------------------
為何 定義 attr_accessor時,會知道 :name 這個變數是指向 實例變數@name呢?
如果在類別裡面定義了 其他變數,如類別變數,全域變數 等。
attr_accessor還會知道是指向@name嗎?
還是在ruby裡面,存取器一定就是預設是 實例變數?
謝謝你們了,查了資料還是不太懂..
--
※ 發信站: 批踢踢實業坊(ptt.cc), 來自: 117.56.105.46
※ 文章網址: https://webptt.com/m.aspx?n=bbs/Ruby/M.1446443921.A.C18.html
1F:推 AIGecko: Ruby可以動態定義方法 其實使用屬性存取也是定義方法 11/02 15:21
2F:→ AIGecko: 可以想像成eval("def #{sym}=(val);@#{sym}=val;end") 11/02 15:23
3F:→ AIGecko: eval("def #{sym});return @#{sym};end") 上面寫這行讀 11/02 15:24
4F:→ AIGecko: 在attr_accessor中會定義name和name=(val) 11/02 15:26
5F:→ abc0: name? 11/06 12:44