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 則是 兩者都會產生
留言
張貼留言