看板 Ruby 關於我們 聯絡資訊
你們好, 我想請問,在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://www.ptt.cc/bbs/Ruby/M.1446443921.A.C18.html
AIGecko: Ruby可以動態定義方法 其實使用屬性存取也是定義方法 11/02 15:21
AIGecko: 可以想像成eval("def #{sym}=(val);@#{sym}=val;end") 11/02 15:23
AIGecko: eval("def #{sym});return @#{sym};end") 上面寫這行讀 11/02 15:24
AIGecko: 在attr_accessor中會定義name和name=(val) 11/02 15:26
abc0: name? 11/06 12:44