国产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

讓我們寫一個計算階乘的函數(shù).對于階乘的數(shù)學定義如下:

n!?=?1????????????????(當?n==0?時)???
???=?n?*?(n-1)!???????(其它情況)

在Ruby里,可以這樣來寫:

def?fact(n)
????????if?n?==?0
??????????1
????????else
??????????n?*?fact(n-1)??
????????end
??????end

你可能會發(fā)現(xiàn)?end?的反復出現(xiàn),正因為如此,Ruby被叫做"類Algol"語言.(實際上,Ruby的語法更像Eiffel).同時,你也可能會發(fā)現(xiàn)這段函數(shù)缺少return語句.在這里是可以用return的,但卻不是必須的,因為一個Ruby的函數(shù)會自動返回它所最后賦值的元素.

讓我們來試試我們的階乘函數(shù).加入一行代碼會使它成為一個可工作的程序:

#?Program?to?find?the?factorial?of?a?number
#?Save?this?as?fact.rb
def?fact(n)??
???if?n?==?0????
?????1??
???else????
?????n?*?fact(n-1)??
???end
end

print?fact(ARGV[0].to_i),?"\n"

這里,ARGV是一個包含命令行參數(shù)的數(shù)組,to_i將字符串轉(zhuǎn)化為整數(shù).

%?ruby?fact.rb?1
1
%?ruby?fact.rb?5
120?

當參數(shù)為40時它可以工作嗎?它將使你的計算器產(chǎn)生溢出(overflow)...

%?ruby?fact.rb?40
815915283247897734345611269596115894272000000000

它確實算出來了.實際上,Ruby能處理任何你機器的內(nèi)存所允許的整數(shù).實際上400!也可以:

%?ruby?fact.rb?400
64034522846623895262347970319503005850702583026002959458684
44594280239716918683143627847864746326467629435057503585681
08482981628835174352289619886468029979373416541508381624264
61942352307046244325015114448670890662773914918117331955996
44070954967134529047702032243491121079759328079510154537266
72516278778900093497637657103263503315339653498683868313393
52024373788157786791506311858702618270169819740062983025308
59129834616227230455833952075961150530223608681043329725519
48526744322324386699484224042325998055516106359423769613992
31917134063858996537970147827206606320217379472010321356624
61380907794230459736069956759583609615871512991382228657857
95493616176544804532220078258184008484364155912294542753848
03558374518022675900061399560145595206127211192918105032491
00800000000000000000000000000000000000000000000000000000000
0000000000000000000000000000000000000000000

我們不能一眼看出是否算對了,但我想應(yīng)該是對的吧.?:-)


輸入/求值循環(huán)

當你不帶參數(shù)啟動Ruby的時候,Ruby會從標準輸入讀入命令并在輸入結(jié)束后再執(zhí)行:

%?ruby
print?"hello?world\n"
print?"good-bye?world\n"
^D
hello?world
good-bye?world

Ruby還包含了一個名為eval.rb的程序,它可以令到你在一個交互式的循環(huán)中輸入Ruby代碼并隨之顯示結(jié)果.在后面的教程里將廣泛使用這個程序.

如果你有一個ANSI兼容(ANSI-compliant)的終端(如果你正運行著一個UNIX變種,一般都是的);在DOS下,你需要安裝ANSI.SYS和ANSI.COM;然后就可以使用這個支持可視化縮排,警告提示,彩色高亮度顯示的增強eval.rb了.不行的話,試試Ruby發(fā)行版里sample目錄下的那個非ANSI版本,它可以運行于所有的控制臺.這是一個簡短的eval.rb對話:

%?ruby?eval.rb
ruby>?print?"Hello,?world.\n"
Hello,?world.
???nil
ruby>?exit

hello?world?由?print?打印出來.下一行?nil?報告最后計算出來的值;Ruby并不區(qū)分語法和表達式,因此計算一段代碼從根本上說和執(zhí)行它是一回事.在這里,nil的意思是print并未返回一個有意義的值.注意:可以用exit或^D離開這個循環(huán)的解釋器.

在整個教程里,'ruby>'表示我們這個非常有用卻很小的eval.rb程序的命令提示符. 版權(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: