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

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

什么叫做一個方法呢?在OO編程里,我們不希望直接從外部操縱一個對象的數(shù)據(jù);相反的,對象自己了解如何操縱自身(當(dāng)被恰當(dāng)?shù)匾髸r).
你也許會說我們傳遞一條消息給一個對象,那些消息就會調(diào)用某類行為或者做有意義的回復(fù).這些都會在我們無需了解或關(guān)心這個對象內(nèi)部
工作機制的情況下發(fā)生.為我們所允許的可讓其執(zhí)行的作業(yè)(或等價的,它能聽懂的消息)就是對象的方法.?

在ruby里,我們通過點(dot?notation,正如C++或Java)來調(diào)用一個對象的方法.被調(diào)用的對象在點的左方給出.

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

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

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

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

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

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

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

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

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

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

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

object.method(arg1,?arg2)

如果不會引起歧義,括號可以去掉.

object.method?arg1,?arg2

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

self.method_name(args...)

和這一樣

method_name(args...)

我們傳統(tǒng)意義上的函數(shù)調(diào)用只不過是self方式調(diào)用的一種簡寫罷了.這也使Ruby可以叫作一種純正的面向?qū)ο笳Z言.當(dāng)然,為了那些搞不清在Ruby里函數(shù)調(diào)用其實就是對象方法的人,函數(shù)化的方法看起來很像在別的語言中的函數(shù).如果我們喜歡,我們也可以叫它們函數(shù),就仿佛他們不是真的對象方法一樣. 版權(quán)聲明:RUBY文檔中心的所有文章標(biāo)明[原創(chuàng)]的均為本站作品,版權(quán)屬RUBY中文化計劃,若轉(zhuǎn)載請注明;標(biāo)明[翻譯]的其外文版權(quán)歸原作者,譯文版權(quán)屬RUBY中文化計劃;標(biāo)明[轉(zhuǎn)貼]的,若原作者感到侵犯了他的著作權(quán),那么請及時跟主持人聯(lián)系,我們會盡快更正。 ?
Previous article: Next article: