国产av日韩一区二区三区精品,成人性爱视频在线观看,国产,欧美,日韩,一区,www.成色av久久成人,2222eeee成人天堂

ディレクトリ 検索
Ruby用戶指南 3、開始 4、簡(jiǎn)單的例子 5、字符串 6、正則表達(dá)式 7、數(shù)組 8、回到那些簡(jiǎn)單的例子 9、流程控制 10、迭代器 11、面向?qū)ο笏季S 12、方法 13、類 14、繼承 15、重載方法 16、訪問(wèn)控制 17、單態(tài)方法 18、模塊 19、過(guò)程對(duì)象 20、變量 21、全局變量 22、實(shí)變量 23、局部變量 24、類常量 25、異常處理:rescue 26、異常處理:ensure 27、存取器 28、對(duì)象的初始化 29、雜項(xiàng) RGSS入門教程 1、什么是RGSS 2、開始:最簡(jiǎn)單的腳本 3、數(shù)據(jù)類型:數(shù)字 4、數(shù)據(jù)類型:常量與變量 5、數(shù)據(jù)類型:字符串 6、控制語(yǔ)句:條件分歧語(yǔ)句 7、控制語(yǔ)句:循環(huán) 8、函數(shù) 9、對(duì)象與類 10、顯示圖片 11、數(shù)組 12、哈希表(關(guān)聯(lián)數(shù)組) 13、類 14、數(shù)據(jù)庫(kù) 15、游戲?qū)ο?/a> 16、精靈的管理 17、窗口的管理 18、活動(dòng)指令 19、場(chǎng)景類 Programming Ruby的翻譯 Programming Ruby: The Pragmatic Programmer's Guide 前言 Roadmap Ruby.new 類,對(duì)象和變量 容器Containers,塊Blocks和迭代Iterators 標(biāo)準(zhǔn)類型 深入方法 表達(dá)式Expressions 異常,捕捉和拋出(已經(jīng)開始,by jellen) 模塊 基本輸入輸出 線程和進(jìn)程 當(dāng)遭遇挫折 Ruby和它的世界 Ruby和Web開發(fā) Ruby Tk Ruby 和微軟的 Windows 擴(kuò)展Ruby Ruby語(yǔ)言 (by jellen) 類和對(duì)象 (by jellen) Ruby安全 反射Reflection 內(nèi)建類和方法 標(biāo)準(zhǔn)庫(kù) OO設(shè)計(jì) 網(wǎng)絡(luò)和Web庫(kù) Windows支持 內(nèi)嵌文檔 交互式Ruby Shell 支持 Ruby參考手冊(cè) Ruby首頁(yè) 卷首語(yǔ) Ruby的啟動(dòng) 環(huán)境變量 對(duì)象 執(zhí)行 結(jié)束時(shí)的相關(guān)處理 線程 安全模型 正則表達(dá)式 字句構(gòu)造 程序 變量和常數(shù) 字面值 操作符表達(dá)式 控制結(jié)構(gòu) 方法調(diào)用 類/方法的定義 內(nèi)部函數(shù) 內(nèi)部變量 內(nèi)部常數(shù) 內(nèi)部類/模塊/異常類 附加庫(kù) Ruby變更記錄 ruby 1.6 特性 ruby 1.7 特性 Ruby術(shù)語(yǔ)集 Ruby的運(yùn)行平臺(tái) pack模板字符串 sprintf格式 Marshal格式 Ruby FAQ Ruby的陷阱
テキスト

什么是一個(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é)我們要討論的. 版權(quán)聲明:RUBY文檔中心的所有文章標(biāo)明[原創(chuàng)]的均為本站作品,版權(quán)屬RUBY中文化計(jì)劃,若轉(zhuǎn)載請(qǐng)注明;標(biāo)明[翻譯]的其外文版權(quán)歸原作者,譯文版權(quán)屬RUBY中文化計(jì)劃;標(biāo)明[轉(zhuǎn)貼]的,若原作者感到侵犯了他的著作權(quán),那么請(qǐng)及時(shí)跟主持人聯(lián)系,我們會(huì)盡快更正。 ?
前の記事: 次の記事: