激情久久久_欧美视频区_成人av免费_不卡视频一二三区_欧美精品在欧美一区二区少妇_欧美一区二区三区的

腳本之家,腳本語言編程技術及教程分享平臺!
分類導航

Python|VBS|Ruby|Lua|perl|VBA|Golang|PowerShell|Erlang|autoit|Dos|bat|

服務器之家 - 腳本之家 - Ruby - ruby 存取器 概念

ruby 存取器 概念

2020-04-10 14:56ruby教程網 Ruby

什么是一個存取器? 我們在前面已經討論過實變量了,但卻未過多的討論.一個對象的實變量屬于它的屬性,也是它與其它來自同一個類的對象的一般區別.讀寫它的屬性是重要的;這樣做需要做一個叫著屬性存取器(attributeaccessors)的方法

什么是一個存取器?

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

ruby>classFruit

|defset_kind(k)#awriter

|@kind=k

|end

|defget_kind#areader

|@kind

|end

|end

nil

ruby>f1=Fruit.new

#

ruby>f1.set_kind("peach")#usethewriter

"peach"

ruby>f1.get_kind#usethereader

"peach"

ruby>f1#inspecttheobject

#

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

ruby>classFruit

|defkind=(k)

|@kind=k

|end

|defkind

|@kind

|end

|end

nil

ruby>f2=Fruit.new

#

ruby>f2.kind="banana"

"banana"

ruby>f2.kind

"banana"

inspect方法

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

ruby>classFruit

|definspect

|"afruitofthe"+@kind+"variety"

|end

|end

nil

ruby>f2

"afruitofthebananavariety"

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

#Thesetwolinesareequivalent:

panObject

printanObject.inspect,"\n"

生成存取器的簡單方法

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

Shortcut縮寫Effect等同于

attr_reader:vdefv;@v;end

attr_writer:vdefv=(value);@v=value;end

attr_accessor:vattr_reader:v;attr_writer:v

attr_accessor:v,:wattr_accessor:v;attr_accessor:w

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

ruby>classFruit

|attr_accessor:condition

|definspect

|"a"+@condition+@kind"

|end

|end

nil

ruby>f2.condition="ripe"

"ripe"

ruby>f2

"aripebanana"

更有趣的水果

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

ruby>classFruit

|deftime_passes

|@condition="rotting"

|end

|end

nil

ruby>f2

"aripebanana"

ruby>f2.time_passes

"rotting"

ruby>f2

"arottingbanana"

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

ruby>f3=Fruit.new

ERR:failedtoconvertnilintoString

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

延伸 · 閱讀

精彩推薦
  • RubyRuby簡潔學習筆記(一):字符串、數字、類和對象

    Ruby簡潔學習筆記(一):字符串、數字、類和對象

    這篇文章主要介紹了Ruby簡潔學習筆記(一):字符串、數字、類和對象,本文是學習筆記第一篇,需要的朋友可以參考下 ...

    腳本之家2472020-04-20
  • RubyRuby設計模式編程中使用Builder建造者模式的實例

    Ruby設計模式編程中使用Builder建造者模式的實例

    這篇文章主要介紹了Ruby設計模式編程中使用Builder建造者模式的實例,建造者模式將一個復雜對象的構造與它的表示分離,使同樣的構建過程可以創建不同的表...

    范孝鵬2192020-05-07
  • RubyRuby環境下安裝使用bundler來管理多版本的gem

    Ruby環境下安裝使用bundler來管理多版本的gem

    這篇文章主要介紹了Ruby環境下安裝使用bundler來管理多版本的gem的方法,舉了Ruby On Rails中的應用實例來進行演示,需要的朋友可以參考下 ...

    日拱一卒4332020-05-10
  • RubyRuby迭代器的7種技巧分享

    Ruby迭代器的7種技巧分享

    這篇文章主要介紹了Ruby迭代器的7種技巧分享,Ruby中的迭代器非常人性化,本文既是講解了7個技巧也是講解了7種迭代器,需要的朋友可以參考下 ...

    腳本之家4782020-04-20
  • RubyRuby進行文件信息輸出實例代碼

    Ruby進行文件信息輸出實例代碼

    Ruby進行文件信息輸出實例代碼,數據是隨機的,所以每次的記錄都會不同。 ...

    ruby教程網2962020-04-10
  • Ruby剖析 Ruby 訪問控制

    剖析 Ruby 訪問控制

    前面,我們說 Ruby 沒有函數,只有方法.而且實際上有不止一種方法.這一節我們介紹 訪問控制 (accesscontrols). 想想當我們在最高層而不是在一個類的定義里定義...

    ruby教程網3572020-04-08
  • Ruby簡要說明Ruby中的迭代器

    簡要說明Ruby中的迭代器

    這篇文章主要介紹了Ruby中的迭代器,迭代器的概念在動態語言的編程中十分重要,文章中介紹了Ruby中的each迭代器和collect迭代器,需要的朋友可以參考下 ...

    goldensun2772020-04-25
  • RubyCentOS中配置Ruby on Rails環境

    CentOS中配置Ruby on Rails環境

    經過一個上午的折騰,終于把ROR環境在CentOS中搞定,繞了很多彎路,把文章寫下來總結一下 ...

    可樂加糖4762020-04-12
主站蜘蛛池模板: 精国产品一区二区三区四季综 | 欧美国产一区二区三区 | 欧美亚洲国产成人综合在线 | 日韩精品中文字幕一区二区三区 | 久久精品99久久久久久2456 | 免费观看9x视频网站在线观看 | 亚洲成人激情在线 | 欧美韩国日本在线 | 精品国产一区二区三区四区阿崩 | 免费观看亚洲视频 | 91看片淫黄大片欧美看国产片 | 97香蕉超级碰碰久久免费软件 | 久久精品二区 | 久久免费激情视频 | 日本成人午夜视频 | 久草手机在线 | 一级免费看片 | 欧美人与牲禽动交精品一区 | 嫩草www| 久久国产精品二国产精品中国洋人 | 91精品国产九九九久久久亚洲 | 色妞欧美| 国产一区二区三区四区五区精品 | 久久精品中文字幕 | 国语自产免费精品视频在 | 精品少妇v888av | 精品一区二区电影 | 毛片免费在线观看视频 | 欧美一级美国一级 | 91在线观看 | 国产午夜精品一区二区三区免费 | 91精品国产综合久久久欧美 | 欧美五月婷婷 | 黄色免费在线视频网站 | 成人羞羞国产免费游戏 | 日本成人一区二区 | 国产精品视频自拍 | 激情综合在线 | 天天夜夜操操 | 黄色片网站在线免费观看 | 黄色av免费电影 |