ruby中attr_accessor方法的理解
生活随笔
收集整理的這篇文章主要介紹了
ruby中attr_accessor方法的理解
小編覺得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.
attr_accessor相當(dāng)于attr_reader和attr_writer的合集,實(shí)際上是在定義類成員變量的時(shí)候就給他定義了一個(gè)get和set方法。
在ruby中,類成員變量都是私有的,不能直接通過(類名.成員變量名)這樣來對(duì)成員變量值進(jìn)行操作。
在這個(gè)實(shí)例中可以看到,使用attr_accessor定義的成員可以直接對(duì)其進(jìn)行set和get的操作,如果沒有attr_accessor,則不行。
# 例子1
# 使用attr_accessor 運(yùn)行正常
1 class AttrAccessorTest1 2 attr_accessor :name 3 def initialize() 4 @name = "test attr" 5 end 6 end 7 t = AttrAccessorTest1.new 8 puts t.name 9 t.name = "test attr modify" 10 puts t.name
#例子2
#未使用attr_accessor運(yùn)行報(bào)錯(cuò)Error:#<NoMethodError:undefinedmethod'name'>
1 class AttrAccessorTest2 2 def initialize() 3 @name = "test attr" 4 end 5 end 6 t = AttrAccessorTest2.new 7 # ↓↓↓↓↓↓ 未使用attr_accessor的name是不可通過 (類名.成員變量名),這樣來對(duì)成員變量值進(jìn)行操作 8 puts t.name 9 t.name = "test attr modify" 10 puts t.name
總結(jié)
以上是生活随笔為你收集整理的ruby中attr_accessor方法的理解的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 日本新冠神药第二次申请又没通过 有试验者
- 下一篇: elk大纲