2012-07-27 16 views
1

如何使用常規方法樣式( 長編碼方式)來表示屬性方法來定義它們?用setter和getter方法的長期經典方式表達attr_accessor?

attr_accessor :name 
attr_writer :name 
attr_reader :legs, :arms 

我自己試試下面。如果我錯了,那麼通過重新輸入 來糾正它。

我的回答是:

def name=(name) 
    @name = name 
    end 
    def name=(legs,arms) 
    @name = legs, arms 
    end 

    def name 
    @name 
    end 
+0

由於'attr_accessor'等同於調用'attr_writer'&'attr_reader',因此'attr_accessor'&'attr_writer' /'attr_reader'具有相同的屬性是多餘的。 – 2012-07-27 04:35:35

回答

0

您使用@name在您重新編寫的版本,幾個不同的任務。有時它存儲名稱,有時它存儲legsarms的元組。

你真正想要的是遠更詳細:

def name=(name) 
    @name = name 
end 

def name() 
    @name 
end 

def legs() 
    @legs 
end 

def arms() 
    @arms 
end 

這是你永遠要分配給legsarms一件好事,因爲這會是兩個毫無意義的方法。

+0

感謝您的回覆,我會嘗試重新編寫此代碼並告訴我它是否正確:)我會寫一個答案,以便我可以複製並粘貼我的代碼。 – RubyBeginner 2012-07-27 01:39:44

+0

謝謝你,我完成了。我正在觀看Lynda.com腳本的構建,當教練開始編寫實際的程序代碼時,我覺得這些屬性或方法或哈希值都不在我的內部,看起來像是完全不同的語言。你能告訴我如何編寫一個簡單的命令行腳本來允許用戶輸入餐廳名稱及其類型和平均價格嗎?然後獲得這些返回值以及搜索添加的餐館的能力,而無需將任何信息保存或存儲到任何僅使用計算機上的記憶體進行一次會話使用的文件? – RubyBeginner 2012-07-27 07:26:46

+0

這是一個比適合評論更大的問題。 (b)將輸出寫入用戶(c)將餐廳的數據存儲到類或元組中(d)將餐廳數據保存到你的類的數組中或元組(e)從你的類或元組數組中檢索餐廳數據。幾乎所有問題都可以通過將其分解爲更小的碎片來改善。 – sarnold 2012-08-01 20:27:26