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

首頁 > 編程 > Ruby > 正文

ruby 存取器 概念

2020-03-29 12:11:47
字體:
來源:轉載
供稿:網友

 什么是一個存取器?

我們在前面已經討論過實變量了,但卻未過多的討論.一個對象的實變量屬于它的屬性,也是它與其它來自同一個類的對象的一般區別.讀寫它的屬性是重要的;這樣做需要做一個叫著屬性存取器(attribute accessors)的方法.我們將很快看到我們并不是總要明確地寫出存取器方法,但現在先讓我們了解所有的細節.存取器的兩種類型是寫(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">  


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

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方法

一個小插曲.你已注意到當我們試著直接觀察一個對象,就會出現一些像 #<anObject: 0x83678> 的東西.這只是個缺省的行為,我們可以自由地改變它.我們所要做的只是加一個名為 inspect 的方法.它會換一個更明了的描述對象的字符串,包括部分或全部的實變量.

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


一個相關的方法是to_s(轉化為字符串),用在打印對象的時候.一般的,你可以認為 inspect 是一個編寫或調試程序時用的工具,而 to_s 是一個美化程序輸出的方法.eval.rb顯示結果時總采用 inspect. 你可以用 p 方法簡單的從程序里取得調試信息.

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


生成存取器的簡單方法

因為許多實變量需要存取方法, Ruby提供了對應于標準方法的縮寫.

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  

讓我們利用它加上"新鮮"信息.首先,我們自動生成了讀和寫方法,然后我們合并這一新信息到 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"  


更有趣的水果

如果沒人吃我們成熟的水果,也許我們該讓它們爛掉.

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"  


但當我們這樣做時,卻引入了一個小問題.現在,如果我們再創造第三個水果會發生什么?記住:實變量不會在賦值前存在.

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


是 inspect 方法在這里挺有理由地抱怨.我們已讓它報告水果的品種和狀態,但 f3 還未賦過任何值.如果我們愿意,我們可以重寫inspect方法使之用 define? 方法測試實變量并只在它們存在時才報告,但也許那不是很有用;因為每一個水果都有類型和狀態.看來我們應該在某種程度上確定其屬性.這正是下一節我們要討論的.  
 

 

發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
国产激情自拍_国产9色视频_丁香花在线电影小说观看 _久久久久国产精品嫩草影院
91精品专区| 中文字幕av在线播放| 国产对白在线| 成 人免费视频播放| www.成人.com| 欧美卡一卡二| 国产中文在线| 国产在线资源| 国产一级黄色大片| 国产国语**毛片高清视频| 国产精品久久久久久福利| 最近中文字幕mv免费高清在线| 欧美性猛交xxxx免费看久久| 九九视频九九热| 国产免费永久在线观看| 国产精品久久在线| 国产精品毛片一区二区三区四区 | 久久五月精品| 狂野欧美性猛交xxxx乱大交| 天天av天天爱| 国产xxx在线| 青青草原国产在线观看| 中文字幕在线影院| 精品免费视频一卡2卡三卡4卡不卡| 中文乱码字幕av网站| 免费a在线看| 国产超碰在线观看| 免费观看久久久久| 国产人成网在线播放va免费| 亚洲国产精品区| 国产在线三区| 精品欧美不卡一区二区在线观看| 欧美日韩视频精品二区| 国产高清一区二区三区视频| 四虎国产精品永久地址998| 最近中文字幕mv2018在线高清| 91三级在线| 最新av免费看| 欧美日韩性视频一区二区三区| 国产精品视频一区二区三区麻豆| 欧美精品日韩少妇| 国产精品扒开做爽爽爽的视频| 一本大道香蕉8中文在线视频| 二区三区中文字幕| 亚洲午夜久久久久中文字幕| 国产精品美女一区二区三区四区| 另类综合图区| 日本h视频在线观看| 91国内精品久久久久| 中文字幕在线视频网| 懂色一区二区三区| 免费女人毛片视频| 亚洲成年人视频| 亚洲欧美中文字幕在线观看| 91麻豆精品国产91久久| 国产小视频免费在线网址| 免费看的毛片| 国产在线免费观看| 在线看黄网址| 午夜在线不卡| 欧美性猛交p30| 超碰在线网址| 最近中文字幕mv2018在线高清| 二区三区中文字幕| 国产美女在线一区二区三区| 国产免费av在线| 国产午夜视频在线观看| 天天操人人干| 国产网友自拍电影在线| 91美女主播在线视频| 在线观看wwww| 欧美高清视频| 丁香六月婷婷| 黄色毛片在线看| 国产日产精品久久久久久婷婷| 国产高清在线看| 9色在线视频网站| 亚洲人av在线| 国产精品一卡二卡三卡| 国产激情在线观看| 在线天堂av| 国产有码在线| 国产对白在线| 人日人天天爽| 国产三级香港三韩国三级| 精品入口蜜桃| 日本中文字幕视频| 99久久精品免费观看国产| 午夜在线视频| 国产激情视频网址| 麻豆精品不卡国产免费看| 国产网站在线免费观看| 欧美性猛交xxxx免费看久久| 国产精品免费91| 超碰在线影院| av人人综合网| 国产亚洲精品久久久久久青梅 | 在线中文免费视频| 国产中文字幕在线播放| 国产黄a三级三级三级av在线看| 日p在线观看| 国产精品剧情一区二区三区 | 国产理论电影在线| 四虎www视频| 在线国产网址| 在线免费黄色毛片| 国产精品合集一区二区| 国产精品偷乱一区二区三区| 天天干天天操天天爽| 在线观看视频污| 精品国产美女福利到在线不卡| 成在线人视频免费视频| 久草电影在线| 久久91精品视频| av日韩在线免费| 在线视频观看国产| 精品成人一区二区三区免费视频| 国产麻豆一级片| 最新黄网在线观看| 中文字幕在线观看日本| 国产农村av| 国产视频福利| 18被视频免费观看视频| 精品一区二区三区在线成人| 国产精品被窝福利一区| 国产高清在线看| 国产福利av网站| 精品一区二区三区高清免费不卡| 国产偷激情在线| 五月婷婷视频在线观看| 国产亚洲依依| 精品视频三区| eeuss影院网站免费观看| 亚洲男人的天堂成人| www.av在线视频| 黄色片免费在线| 国产青草视频在线观看视频| 国产传媒在线播放| www.av在线| 国产香蕉在线| 永久免费av片在线观看全网站| jlzzjlzz欧美大全| 国产无遮挡又黄又爽免费软件| 国产成人无吗| 在线国产1区| 国产剧情av在线| 999精品网| 国产老肥熟xxxx在线观看| 精品女厕厕露p撒尿| 九九在线免费视频| 在线免费观看黄色av| 91xxx在线观看| 日本调教视频在线观看| 69精品视频| 国产一级电影网| 四虎a级欧美在线观看| 国产精品久久久久白浆| 日本成人a视频| 91亚洲天堂| 国产在线高清| 中文在线视频观看| 国产高清在线观看| 国产尤物视频| 日韩a视频在线观看| 99视频在线观看地址| gogo在线观看| 亚洲高清在线免费| 怡红院av在线| 精品国产丝袜高跟鞋| 国产成人久久精品77777| 最近中文av字幕在线中文| 久热国产在线视频| 欧美日韩久久中文字幕| 亚洲免费网站在线观看| 国产高清在线看| 国产天堂在线| 国产精品人人| 国产va在线观看| 精品麻豆一区二区三区| 中文在线视频| 日韩在线天堂| 国内自拍视频在线看免费观看| 欧美视频免费一区二区三区| 日韩a视频在线观看| 欧美xxxx黑人又粗又长| 天堂资源最新在线| 91麻豆福利| 亚洲网站视频在线观看| 欧美日韩视频精品二区| 精品中文字幕不卡在线视频| 国产在线观看色| 国产精品四虎| av免费在线观| 黄色免费av| 国产精品186在线观看在线播放| 99综合精品久久| 欧美婷婷久久五月精品三区| 中文字幕在线免费看| av免费在线免费| 九九热在线观看视频|