国产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 標準類型 深入方法 表達式Expressions 異常,捕捉和拋出(已經(jīng)開始,by jellen) 模塊 基本輸入輸出 線程和進程 當遭遇挫折 Ruby和它的世界 Ruby和Web開發(fā) Ruby Tk Ruby 和微軟的 Windows 擴展Ruby Ruby語言 (by jellen) 類和對象 (by jellen) Ruby安全 反射Reflection 內(nèi)建類和方法 標準庫 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

局部變量由小寫字母或下劃線(_)開頭.局部變量不像全局和實變量一樣在初始化前含nil值.

ruby>?$foo
???nil
ruby>?@foo
???nil
ruby>?foo
ERR:?(eval):1:?undefined?local?variable?or?method?`foo'?for?main(Object)?

對局部變量的第一次賦值做的很像一次聲明.如果你指向一個未初始化的局部變量,Ruby解釋器會認為那是一個方法的名字;正如上面所見錯誤

信息的.

一般的,局部變量的范圍會是

proc{...}?
loop{...}?
def...end?
class...end?
module...end?
整個程序(除非符合上面某個條件)


下面的例子,define?是一個檢查標識符是否已定義的操作符.如果已定義它將返回標識符的描述,否則返回nil.正如你所見的,bar的范圍是

loop的局部變量;當loop退出時,bar無定義.

ruby>?foo?=?44;?print?foo,?"\n";?defined??foo
44
???"local-variable"
ruby>?loop{bar=45;?print?bar,?"\n";?break};?defined??bar
45
???nil?

一個范圍內(nèi)的過程對象共享這個范圍內(nèi)的局部變量.這里,局部變量?bar?由?main?和過程對象?p1,?p2共享:

ruby>?bar=0
???0
ruby>?p1?=?proc{|n|?bar=n}
???#<Proc:0x8deb0>
ruby>?p2?=?proc{bar}
???#<Proc:0x8dce8>
ruby>?p1.call(5)
???5
ruby>?bar
???5
ruby>?p2.call
???5?

注意開始的"bar=0"不能省略;此賦值允許bar的范圍被?p1和?p2共享.不然?p1,?p2?將會分別生成并處理它們自己的局部變量?bar,?調(diào)用?p2?

也將導(dǎo)致"未定義局部變量或方法"錯誤.

過程對象的強大在于它們能被作為參數(shù)傳遞:共享的局部變量即使傳遞出原范圍也仍然有效.

ruby>?def?box
????|???contents?=?15
????|???get?=?proc{contents}
????|???set?=?proc{|n|?contents?=?n}
????|???return?get,?set
????|?end
???nil
ruby>?reader,?writer?=?box
???[#<Proc:0x40170fc0>,?#<Proc:0x40170fac>]?
ruby>?reader.call
???15
ruby>?writer.call(2)
???2
ruby>?reader.call
???2?

Ruby對待范圍的辦法相當聰明.顯然,上面例子里?contents?變量是由?reader?和?writer?共享的.我們也可以像上面那樣創(chuàng)造多對使用box的

reader-writer;每一對共享一個?contents?變量,對之間不相干擾.

ruby>?reader_1,?writer_1?=?box
???[#<Proc:0x40172820>,?#<Proc:0x4017280c>]
ruby>?reader_2,?writer_2?=?box
???[#<Proc:0x40172668>,?#<Proc:0x40172654>]
ruby>?writer_1.call(99)
???99
ruby>?reader_1.call
???99
ruby>?reader_2.call
???15? 版權(quán)聲明:RUBY文檔中心的所有文章標明[原創(chuàng)]的均為本站作品,版權(quán)屬RUBY中文化計劃,若轉(zhuǎn)載請注明;標明[翻譯]的其外文版權(quán)歸原作者,譯文版權(quán)屬RUBY中文化計劃;標明[轉(zhuǎn)貼]的,若原作者感到侵犯了他的著作權(quán),那么請及時跟主持人聯(lián)系,我們會盡快更正。 ?
Previous article: Next article: