亚洲国产日韩欧美一区二区三区,精品亚洲国产成人av在线,国产99视频精品免视看7,99国产精品久久久久久久成人热,欧美日韩亚洲国产综合乱

ディレクトリ 検索
Ruby用戶指南 3、開(kāi)始 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入門(mén)教程 1、什么是RGSS 2、開(kāi)始:最簡(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)開(kāi)始,by jellen) 模塊 基本輸入輸出 線程和進(jìn)程 當(dāng)遭遇挫折 Ruby和它的世界 Ruby和Web開(kāi)發(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è)方法呢?在OO編程里,我們不希望直接從外部操縱一個(gè)對(duì)象的數(shù)據(jù);相反的,對(duì)象自己了解如何操縱自身(當(dāng)被恰當(dāng)?shù)匾髸r(shí)).
你也許會(huì)說(shuō)我們傳遞一條消息給一個(gè)對(duì)象,那些消息就會(huì)調(diào)用某類行為或者做有意義的回復(fù).這些都會(huì)在我們無(wú)需了解或關(guān)心這個(gè)對(duì)象內(nèi)部
工作機(jī)制的情況下發(fā)生.為我們所允許的可讓其執(zhí)行的作業(yè)(或等價(jià)的,它能聽(tīng)懂的消息)就是對(duì)象的方法.?

在ruby里,我們通過(guò)點(diǎn)(dot?notation,正如C++或Java)來(lái)調(diào)用一個(gè)對(duì)象的方法.被調(diào)用的對(duì)象在點(diǎn)的左方給出.

ruby>?"abcdef".length
???6?

表面上看,這一字符串被問(wèn)及其長(zhǎng)度.技術(shù)上看,我們正調(diào)用對(duì)象"abcdef"的length方法.

其它的對(duì)象也許擁有一個(gè)稍有不同的length接口,或者根本沒(méi)有.消息的如何應(yīng)答在程序運(yùn)行期間做決定,行為也取決于其所指變量.

ruby>?foo?=?"abc"
???"abc"
ruby>?foo.length
???3
ruby>?foo?=?["abcde",?"fghij"]
???["abcde",?"fghij"]
ruby>?foo.length
???2?

length的意義也會(huì)隨對(duì)象的變化而改變.在上例中,第一次我們叫foo返回其長(zhǎng)度,它對(duì)應(yīng)于一個(gè)簡(jiǎn)單字符串,這里也就只有一種合理的答案.第二次,foo代表一個(gè)數(shù)組,我們也許會(huì)考慮其長(zhǎng)度為2,5或10;但一般情況下最合適的答案當(dāng)然是2(其它類型長(zhǎng)度也應(yīng)被很容易的猜出).

ruby>?foo[0].length
???5
ruby>?foo[0].length?+?foo[1].length
???10?

這里需注意的是一個(gè)數(shù)組了解其自身作為一個(gè)數(shù)組的意義.Ruby中的一部分代碼賦予了他們這一性質(zhì),因此對(duì)他們的需求可以自動(dòng)的通過(guò)各種
適當(dāng)?shù)姆椒▽?shí)現(xiàn).由于相當(dāng)少量的對(duì)應(yīng)于我們?cè)谧匀徽Z(yǔ)言中所表達(dá)概念的方法名能被不同種類的數(shù)據(jù)如我們所愿地采用,這便將程序員從大量特殊函數(shù)名中解脫出來(lái).OO編程語(yǔ)言的這一特點(diǎn)(在我看來(lái),Java的這一點(diǎn)做的并不是很好)叫做多態(tài)(polymorphism).?

當(dāng)一個(gè)對(duì)象碰到一個(gè)不能理解的信息,一個(gè)錯(cuò)誤便會(huì)"發(fā)生":

ruby>?foo?=?5
???5
ruby>?foo.length
ERR:?(eval):1:?undefined?method?`length'?for?5(Fixnum)?

所以我們就需要了解什么方法是被這一對(duì)象所接受的,雖然我們并不需要了解這個(gè)方法是如何工作的.

如果要給方法賦參數(shù),參數(shù)應(yīng)在一對(duì)括號(hào)內(nèi),

object.method(arg1,?arg2)

如果不會(huì)引起歧義,括號(hào)可以去掉.

object.method?arg1,?arg2

Ruby里有個(gè)特殊變量self;它指向任意調(diào)用方法的對(duì)象.由于"self"經(jīng)常用到,為了方便它可被省掉:

self.method_name(args...)

和這一樣

method_name(args...)

我們傳統(tǒng)意義上的函數(shù)調(diào)用只不過(guò)是self方式調(diào)用的一種簡(jiǎn)寫(xiě)罷了.這也使Ruby可以叫作一種純正的面向?qū)ο笳Z(yǔ)言.當(dāng)然,為了那些搞不清在Ruby里函數(shù)調(diào)用其實(shí)就是對(duì)象方法的人,函數(shù)化的方法看起來(lái)很像在別的語(yǔ)言中的函數(shù).如果我們喜歡,我們也可以叫它們函數(shù),就仿佛他們不是真的對(duì)象方法一樣. 版權(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ì)盡快更正。 ?
前の記事: 次の記事: