国产激情自拍_国产9色视频_丁香花在线电影小说观看 _久久久久国产精品嫩草影院

首頁(yè) > 編程 > Ruby > 正文

ruby 存取器 概念

2020-10-29 19:47:18
字體:
來(lái)源:轉(zhuǎn)載
供稿:網(wǎng)友

 什么是一個(gè)存取器?

我們?cè)谇懊嬉呀?jīng)討論過(guò)實(shí)變量了,但卻未過(guò)多的討論.一個(gè)對(duì)象的實(shí)變量屬于它的屬性,也是它與其它來(lái)自同一個(gè)類的對(duì)象的一般區(qū)別.讀寫它的屬性是重要的;這樣做需要做一個(gè)叫著屬性存取器(attribute accessors)的方法.我們將很快看到我們并不是總要明確地寫出存取器方法,但現(xiàn)在先讓我們了解所有的細(xì)節(jié).存取器的兩種類型是寫(writer)和讀(reader).

ruby> class Fruit
    |   def set_kind(k)  # a writer
    |     @kind = k
    |   end
    |   def get_kind     # a reader
    |     @kind
    |   end
    | end
   nil
ruby> f1 = Fruit.new
   #<Fruit:0xfd7e7c8c>
ruby> f1.set_kind("peach")  # use the writer
   "peach"
ruby> f1.get_kind           # use the reader
   "peach"
ruby> f1                    # inspect the object
   #<Fruit:0xfd7e7c8c @kind="peach">  


足夠簡(jiǎn)單;我們可以存取關(guān)于我們搜索的水果種類的信息.但我們的方法名還有點(diǎn)兒牢騷.下面的這個(gè)更簡(jiǎn)潔,也更方便.

ruby> class Fruit
    |   def kind=(k)
    |     @kind = k
    |   end
    |   def kind
    |     @kind
    |   end
    | end
   nil
ruby> f2 = Fruit.new
   #<Fruit:0xfd7e7c8c>
ruby> f2.kind = "banana"
   "banana"
ruby> f2.kind
   "banana"  


inspect方法

一個(gè)小插曲.你已注意到當(dāng)我們?cè)囍苯佑^察一個(gè)對(duì)象,就會(huì)出現(xiàn)一些像 #<anObject: 0x83678> 的東西.這只是個(gè)缺省的行為,我們可以自由地改變它.我們所要做的只是加一個(gè)名為 inspect 的方法.它會(huì)換一個(gè)更明了的描述對(duì)象的字符串,包括部分或全部的實(shí)變量.

ruby> class Fruit
    |   def inspect
    |     "a fruit of the " + @kind + " variety"
    |   end
    | end
   nil
ruby> f2
   "a fruit of the banana variety"  


一個(gè)相關(guān)的方法是to_s(轉(zhuǎn)化為字符串),用在打印對(duì)象的時(shí)候.一般的,你可以認(rèn)為 inspect 是一個(gè)編寫或調(diào)試程序時(shí)用的工具,而 to_s 是一個(gè)美化程序輸出的方法.eval.rb顯示結(jié)果時(shí)總采用 inspect. 你可以用 p 方法簡(jiǎn)單的從程序里取得調(diào)試信息.

# These two lines are equivalent:
p anObject
print anObject.inspect, "/n"  


生成存取器的簡(jiǎn)單方法

因?yàn)樵S多實(shí)變量需要存取方法, Ruby提供了對(duì)應(yīng)于標(biāo)準(zhǔn)方法的縮寫.

Shortcut縮寫          Effect等同于  
attr_reader :v        def v; @v; end  
attr_writer :v        def v=(value); @v=value; end  
attr_accessor :v      attr_reader :v; attr_writer :v  
attr_accessor :v, :w  attr_accessor :v; attr_accessor :w  

讓我們利用它加上"新鮮"信息.首先,我們自動(dòng)生成了讀和寫方法,然后我們合并這一新信息到 inspect 中去:

ruby> class Fruit
    |   attr_accessor :condition
    |   def inspect
    |     "a " + @condition + @kind"
    |   end
    | end
   nil
ruby> f2.condition = "ripe"
   "ripe"
ruby> f2
   "a ripe banana"  


更有趣的水果

如果沒(méi)人吃我們成熟的水果,也許我們?cè)撟屗鼈儬€掉.

ruby> class Fruit
    |   def time_passes
    |     @condition = "rotting"
    |   end
    | end
   nil
ruby> f2
   "a ripe banana"
ruby> f2.time_passes
   "rotting"
ruby> f2
   "a rotting banana"  


但當(dāng)我們這樣做時(shí),卻引入了一個(gè)小問(wèn)題.現(xiàn)在,如果我們?cè)賱?chuàng)造第三個(gè)水果會(huì)發(fā)生什么?記住:實(shí)變量不會(huì)在賦值前存在.

ruby> f3 = Fruit.new
ERR: failed to convert nil into String  


是 inspect 方法在這里挺有理由地抱怨.我們已讓它報(bào)告水果的品種和狀態(tài),但 f3 還未賦過(guò)任何值.如果我們?cè)敢?我們可以重寫inspect方法使之用 define? 方法測(cè)試實(shí)變量并只在它們存在時(shí)才報(bào)告,但也許那不是很有用;因?yàn)槊恳粋€(gè)水果都有類型和狀態(tài).看來(lái)我們應(yīng)該在某種程度上確定其屬性.這正是下一節(jié)我們要討論的.  
 

發(fā)表評(píng)論 共有條評(píng)論
用戶名: 密碼:
驗(yàn)證碼: 匿名發(fā)表
国产激情自拍_国产9色视频_丁香花在线电影小说观看 _久久久久国产精品嫩草影院
欧洲一区av| 99re在线视频播放| 超碰在线免费播放| 阿v免费在线观看| 黄色国产网站在线观看| 黄色av网站在线免费观看| 人人干人人插| 中文字幕在线观看播放| 国产福利在线| 男人操女人免费网站| 国产一区精品| 香蕉视频免费在线播放| 麻豆精品不卡国产免费看| 国产一级免费看| av在线不卡网站| 国产一级网站视频在线| gogo高清在线播放免费| 国产九九九九| 日本一级理论片在线大全| 国产精品一品| av在线免费播放| 国产调教视频在线观看| 亚洲欧美日韩成人网| 国产网站免费看| www.夜夜操.com| 92久久精品| 国产黄色在线网站| 国产性色视频| 二区三区中文字幕| 亚洲xxxxxx| 伊人色综合网| 精品视频一区二区观看| 中文字幕专区| 黄色网址在线免费播放| japanese色国产在线看视频| 国产成人亚洲欧美电影| 国产美女福利在线| 日本黄色免费网址| 亚洲国产aⅴ精品| 伊人中文在线| 精品视频二区| 中文国产字幕在线观看| 国产精品视频一区二区三区麻豆| 激情亚洲综合网| 黄色片大全在线观看| 免费视频二区| 久久精品免视着国产成人| 青青草视频在线免费观看| 69久久精品| 在线播放www| 亚洲夜夜综合| jizz在线免费观看| www在线视频| 天天av综合网| 国产欧美在线观看视频| 99热国产在线| 九九热视频在线观看| 日本中文字幕在线2020| 国产视频第一区| 精品免费视频一卡2卡三卡4卡不卡 | 国产秒拍福利视频露脸| 国产污视频在线| 中文视频在线| h网站久久久| 黄污在线观看| 国产jizz| 免费高清视频日韩| 国产精品久久麻豆| wwww在线观看免费视频| 国产免费黄色| 在线免费观看黄色片| 美女免费视频黄| 国产高清视频在线| 欧美a免费在线| 国产youjizz在线| 国产专区在线播放| 中文国产字幕在线观看| 国产69久久| www.久草.com| 国产福利在线看| 九色视频网站| 性网站在线观看| 精品亚洲综合| 国产精品麻豆一区二区三区| 欧美日韩**字幕一区| 91精品大全| 国产精品不卡一区二区三区在线观看 | 国产在线一区二区视频| 在线看黄色av| 91在线网站| 国产成人天天5g影院| 国产精选一区二区三区不卡催乳| 中文日本在线观看| 91在线中文| 99中文字幕一区| 精品美女视频在线观看免费软件| 国产人成在线观看| 天天操天天曰| 丁香花在线电影| 尤物视频在线观看| 最近免费中文字幕大全免费第三页| 开心丁香婷婷深爱五月| 日本一二三区视频免费高清| 亚洲成人av高清| 人人干在线视频| 久久av少妇| 国产乱子视频| 国产毛片在线看| 中文字幕有码在线视频| 国产免费一级片| 国产精品欧美韩国日本久久| 国产日本在线观看| 99在线播放| 欧美高清视频| 国产一区二区三区美女秒播| 国产对白在线| 免费一区二区在线观看| 国产在线视精品麻豆| 国产天堂在线观看| 亚洲私人影吧| 国产在线日本| 国产高清av在线| eeuss影院www在线播放| 久久99国产视频| 国产精品久久久高清免费| av在线二区| 国产精品入口麻豆电影| 日韩国产成人| 国产福利在线播放| 老师我好爽再深一点的视频| 国产精品久久久久白浆| 波多野结衣久久高清免费| 国产视频精选在线| 操操操综合网| 中文av在线播放| 国产色在线 com| 九九热在线视频观看| 制服丝袜中文字幕在线观看| 国产女呦网站| 国产精品探花在线| av在线首页| 国产精品久久麻豆| 国产中文字幕在线观看| 一区二区精品区| 国产精品福利视频一区二区三区| 在线国产网址| 国产精品69一区二区三区| 激情小说 在线视频| 在线播放www| 国产高清免费视频| 国产一二三四| 中文字幕一区二区三区免费视频| 四虎成人精品在永久在线观看| 国产激情视频网址| 中文字幕高清av| 国产精品午夜久久久久久| а√资源新版在线天堂| av在线免费观看网| av在线首页| 欧洲亚洲精品视频| 亚洲成人av在线影院| 在线国产91| 99re6在线视频精品免费| 国产精品久久久久久福利| 国产日韩欧美一区二区三区视频| 国产理论电影在线观看| 99热最新网址| 国产三级视频在线看| 国产精品久久久久久久牛牛| 国产婷婷视频在线| 97人人在线| 日本韩国精品一区二区| 九九热在线播放| 尤物视频网站在线观看| 国产精品人人| 69av二区| www.毛片| 国产亚洲精品自在线观看| 国产日韩欧美第一页| 国产超碰97| 免费在线播放av| 国产精品美女视频免费观看软件| 在线三级中文| 成在在线免费视频| 国产黄网站在线观看| 轻轻色免费在线视频| 国产偷倩在线播放| 亚洲电影视频在线| 国产女呦网站| 国产黄在线看| 狠狠操视频网| 精品视频在线一区二区| www免费在线观看视频| 国产一区二区三区不卡免费观看 | 91欧美在线视频| av黄色在线观看| 九九热在线视频| 2021av在线| 国产在线精品一区二区不卡| 国产精品伦一区二区三区视频|