官網(wǎng):http://www.ruby-lang.org/en/
API文檔:http://www.ruby-lang.org/en/documentation/
教程:http://hgci.cn/ruby/ruby-tutorial.html
下載:http://www.ruby-lang.org/en/downloads/
邊學(xué)邊練:ruby微課
Ruby,一種簡單快捷的面向?qū)ο螅嫦驅(qū)ο蟪绦蛟O(shè)計)腳本語言,在20世紀90年代由日本人松本行弘(Yukihiro Matsumoto)開發(fā),遵守GPL協(xié)議和Ruby License。它的靈感與特性來自于 Perl、Smalltalk、Eiffel、Ada以及 Lisp 語言。由 Ruby 語言本身還發(fā)展出了JRuby(Java平臺)、IronRuby(.NET平臺)等其他平臺的 Ruby 語言替代品。Ruby的作者于1993年2月24日開始編寫Ruby,直至1995年12月才正式公開發(fā)布于fj(新聞組)。因為Perl發(fā)音與6月誕生石pearl(珍珠)相同,因此Ruby以7月誕生石ruby(紅寶石)命名。
外文名 Ruby 詞條名 Ruby 類 別 腳本語言 創(chuàng)始人 松本行弘 發(fā)布時間 1995年12月 最新版本 2.3.1
發(fā)展歷程
Ruby明顯比其他類似的編程語言(如Perl或Python)年輕,又因為Ruby是日本人發(fā)明的,所以早期的非日文資料和程序都比較貧乏,所以在網(wǎng)上仍然可以找到類似“Ruby的資料太少”之類的批評。約于2000年,Ruby開始進入美國,英文的資料開始發(fā)展。Ruby歸根結(jié)底源于Perl和Python兩類語言,與C,C++,C#,java是不同大類。Ruby 標(biāo)識2011年10月31日1.9.3的第一個穩(wěn)定版本1.9.3p0發(fā)布。2013年2月22日發(fā)布了Ruby 1.9.3-p392。2013年2月24日發(fā)布了Ruby 2.0.0-p0。2015年4月13日發(fā)布了Ruby 2.2.2。2015年12月25日發(fā)布了Ruby 2.3.0。語言標(biāo)準
Ruby的變量有一定的規(guī)則,以$開頭的一定是全局變量,以@開頭的都是實例變量,而以@@開頭的是類變量。常數(shù)則以大寫字母開頭;這種方法,對文本編輯器的命令補全很有幫助,如在vim下先鍵入$及開頭字母,再敲擊Ctrl+p,則可專門補全本文件以及關(guān)聯(lián)文件中的全局變量,perl與php亦有此優(yōu)點。已經(jīng)定義的類可以在運行時修改Ruby是動態(tài)語言,你可以在程序中修改先前定義過的類。 也可以在某個類的實例中定義該實例特有的方法,這叫做單例方法。class MyClass
def the_method
"generalmethod"
end
end
mc=MyClass.new
def mc.the_method
"special for this instance."
end
mc.the_method#specialforthisinstance使用Ruby可以寫出簡短而又功能強大的代碼下面的方法用來完成兩個矩陣的乘積def matrix_mul(matrix1,matrix2)
result=[]
(0...matrix1.length).each{|i|
temp=[]
(0...matrix2[0].length).each{|j|
tmp=0
(0...matrix1[0].length).each{|k|
tmp+=matrix1[i][k]*matrix2[k][j]
}
temp<<tmp
}
result<<temp
}
return result
end
注:ruby標(biāo)準庫中已包含矩陣庫 Matrix語言特點
完全面向?qū)ο?/span>
在Ruby語言中,任何東西都是對象,包括其他語言中的基本數(shù)據(jù)類型,比如整數(shù)
變量沒有類型
Ruby的變量可以保存任何類型的數(shù)據(jù)。
任何東西都有值
不管是數(shù)學(xué)或者邏輯表達式還是一個語句,都會有值。
ruby語言很優(yōu)雅,可以做到不需要注釋就可以讀懂。
優(yōu)點
語法簡單
普通的面向?qū)ο蠊δ?類,方法調(diào)用等)
特殊的面向?qū)ο蠊δ?Mixin,特殊方法等)
操作符重載
錯誤處理功能
迭代器和閉包
垃圾回收
動態(tài)載入(取決于系統(tǒng)架構(gòu))
可移植性高.不僅可以運行在多數(shù)UNIX上,還可以運行在DOS,Windows,Mac,BeOS等平臺上
適合于快速開發(fā),一般開發(fā)效率是JAVA的5倍
語言理念編輯
減少編程時候的不必要的瑣碎時間,令編寫程序的人高興,是設(shè)計 Ruby 語言的 Matz 的一個首要的考慮;其次是良好的界面設(shè)計。他強調(diào)系統(tǒng)設(shè)計必須注重人性化,而不是一味從機器的角度設(shè)想。
“ 人們特別是電腦工程師們,常常從機器著想。他們認為:‘這樣做,機器就能運行的更快;這樣做,機器運行效率更高;這樣做,機器就會怎樣怎樣怎樣。’實際上,我們需要從人的角度考慮問題,人們怎樣編寫程序或者怎樣使用機器上應(yīng)用程序。我們是主人,他們是仆人。 ”
遵循上述的理念,Ruby 語言通常非常直觀,按照編程人認為它應(yīng)該的方式運行。
Ruby 是完全面向?qū)ο蟮模喝魏我稽c數(shù)據(jù)都是對象,包括在其他語言中的基本類型(比如:整數(shù),布爾邏輯值),每個過程或函數(shù)都是方法。
下面是一個在標(biāo)準輸出設(shè)備上輸出Hello World的簡單程序,這種程序通常作為開始學(xué)習(xí)編程語言時的第一個程序:
#!/usr/bin/env ruby
puts "Hello, world!"
語言用途
- Ruby 是開源的,在Web 上免費提供,但需要一個許可證。
- Ruby 是一種通用的、解釋的編程語言。
- Ruby 是一種真正的面向?qū)ο缶幊陶Z言。
- Ruby 是一種類似于 Python 和 Perl 的服務(wù)器端腳本語言。
- Ruby 可以用來編寫通用網(wǎng)關(guān)接口(CGI)腳本。
- Ruby 可以被嵌入到超文本標(biāo)記語言(HTML)。
- Ruby 語法簡單,這使得新的開發(fā)人員能夠快速輕松地學(xué)習(xí) Ruby。
- Ruby 與 C++ 和 Perl 等許多編程語言有著類似的語法。
- Ruby 可擴展性強,用 Ruby 編寫的大程序易于維護。
- Ruby 可用于開發(fā)的 Internet 和 Intranet 應(yīng)用程序。
- Ruby 可以安裝在 Windows 和 POSIX 環(huán)境中。
- Ruby 支持許多 GUI 工具,比如 Tcl/Tk、GTK 和 OpenGL。
- Ruby 可以很容易地連接到 DB2、MySQL、Oracle 和 Sybase。
- Ruby 有豐富的內(nèi)置函數(shù),可以直接在 Ruby 腳本中使用。
發(fā)明人
松本行弘"Matz"(Yukihiro Matsumoto)是Ruby語言的發(fā)明人,他從1993年起便開始著手Ruby的研發(fā)工作。他一直想發(fā)明一種語言,使你既能進行高效開發(fā)又能享受編程的快樂。1993年2月24日Ruby誕生了,1995年12月Matz推出了Ruby的第一個版本Ruby 0.95。不久Ruby便憑借其獨特的魅力橫掃日本。