ruby: attr_accessor

attr_accessor 其實就是 物件中對成員變數的 getter / setter 

e.g. github



會顯示: 

Snow: Woof!

Vicky: Meaow!


但如果 我們將 attr_accessor mark off

會出現

animal.rb:21:in `<main>': undefined method `name' for #<Dog:0x00007fd3558f98e8 @name="Snow"> (NoMethodError)

這是因為 如果不宣告 attr_accessor

物件以外的程式並沒有方式可以存取


再看一個例子: github: robot.rb

( 範例來自 Head First Ruby 這本書, 寫得清楚易懂, 推 

)

getter 展開的 Ruby 程式:

setter 展開的 Ruby 程式:


       attr_reader 會只產生 getter

       attr_writer 會只產生 setter

       attr_accessor 則是 兩者都會產生




留言

熱門文章