1、簡介
ruby是日本的yukihiro matsumoto寫的,簡單易學的物件導向的指令碼語言,像perl一樣,有豐富的文書處理、系統管理等豐富 功能,但是ruby要簡單,容易理解和擴充。跟python很類似,但是在國內遠沒有python有名。
一般認為,他有如下特點:
2、環境安裝
(2).解壓縮原始檔,進入安裝目錄
#./configuremake
#make
#install
3.使用
(1). 使用irb。irb是乙個互動介面,在shell裡執行它,首先顯示提示符,等待輸入;使用者輸入之後,它在進行處理,把結果顯示給使用者。
#irb
irb(main):001:0> $str="hello world!/n"
=> "hello world!/n"
irb(main):002:0> print $str
hello world!
=> nil
irb(main):003:0>
(2).像其他語言一樣,從程式檔案執行
[root@tserver /root]# chmod a+x foo.rb
[root@tserver /root]# cat foo.rb
#!/usr/local/bin/ruby -w
puts "hello, world!"
[root@tserver /root]# ruby foo.rb
hello, world!
[root@tserver /root]# ./foo.rb
hello,world!
[root@tserver /root]#
(3).ruby使用方法
ruby [ option ...] [ -- ] [ programfile ] [ argument ...]pre>
關於ruby的命令列引數,可以參考相關文件。
4.簡單例子
def saygoodnight(name)
result = "goodnight, " + name
return result
end # time for bed...
puts saygoodnight("john-boy")
puts saygoodnight("mary-ellen")
可以看到,ruby的語法還是比較簡單的,首先,你不必每行都寫個分號, ruby注釋以#開頭,直到行尾。
methods定義以關鍵字def開始,接著是方法名和方法引數, ruby不需要用braces來界定程式主體,只需要關鍵字end就行了。
這個程式也相當簡單,第一行把``goodnight, ''加上引數name,並把它賦給了區域性變數result,第二行把結果返回給呼叫者。注意我們不需要定義變數result。
最後我們呼叫了2次這個方法,並把結果傳給puts函式,這個函式簡單的再新行上列印傳給它的引數而已,最後結果像這樣:
goodnight, john-boy
goodnight, mary-ellen
其實 puts saygoodnight("john-boy") 包括了2個函式呼叫,乙個put系統函式,乙個saygoodnight函式。但是為什麼puts呼叫沒有用括號呢?實際上,下面的呼叫都是等價的:
puts(saygoodnight "john-boy")
puts(saygoodnight("john-boy"))
puts saygoodnight("john-boy")
puts saygoodnight "john-boy"
但是如果都不寫括號,你知道那個引數傳給誰嗎?所以還是建議在方法後面加上括號,方便閱讀源程式。
這個方法還展示了string物件,有很多種辦法可以建立string物件,但最普通的要算用string literals了:單引號或雙引號包起來的一組字元。它們的區別是ruby構建這兩種字串時要做的操作。對單引號引起來的字串來說,ruby做的工作會很少,單引號引起來得部分就是它的值。如果是雙引號引起來得,則要做多一些工作了。首先,它檢查是否包含反斜線,也就是轉義符,然後用適當的二進位制值代替,最常見的就是"/n"了,它將會被換行替換。如:
puts "and goodnight,/ngrandma"
產生結果如下:
and goodnight,
grandma
第二件事情就是expression interpolation。#被expression的值代替,例如,下面的方法和剛才的例子是一樣的結果
def saygoodnight(name)
result = "goodnight, #"
return result
end當然我們還可以再簡化這個函式。
乙個ruby函式返回的結果就是最後一行的值,所以這個函式也可以寫成如下:
def saygoodnight(name)
"goodnight, #"
end
ruby使用俗定的命名方式為變數命名,變數名的第乙個字母標誌了它的型別,是區域性變數,還是方法引數,方法名應該以小寫字母或者下劃線開頭,全域性變數應該以$開頭,例項變數以@開頭, class變數以@@開頭,而類名,模組名,常量應該以大寫字母開頭。
乙個名字可以是字母,數字,下劃線的任意組合,但是有@後面不允許直接跟著乙個數字。
總之,作為一門語言,不是一兩個例子,幾個文章能說清楚地,在網上流傳的我愛ruby的10個原因等跟天下足球top ten類似的短文中,總會看到乙個理由,就是fun with ruby。也許,更有趣的還在後面。
是什麼東西 金錢是個什麼東西?
多數人看到大筆錢都會有一種莫名的興奮,為什麼會興奮呢?因為足夠的金錢能換來自己想要的東西,錢刺激著你的每根神經和細胞,你會控制不住地興奮。錢是個什麼東西?錢是所有物質的替代品,包括房子 車子 愛情 性 健康 未來。只要你方法得當,足夠的金錢可以交換幾乎所有想要的東西。錢是虛幻的。錢可以作為大多數人追...
ARM是什麼東西?
arm是什麼東西?arm advanced risc machines 既可以認為是乙個公司的名字,也可以認為是對一類微處理器的通稱,還可以認為是一種技術的名字。1991 年 arm 公司成立於英國劍橋,主要 晶元設計技術的授權。目前,採用 arm技術智財權 ip 核的微處理器,即我們通常所說的 a...
cookie是什麼東西?
所謂cookie,只是一條極為短小的資訊,它能夠被 自動地放置在一台電腦的硬碟中。通過cookie,可以識別你是第一次訪問,或是又一次訪問它。還可以利用cookie了解你對哪些內容感興趣,收集與使用者有關的資訊,例如郵政區號 計算機晶元的型別以及其他資訊。在你瀏覽某些 的時,的程式會在你不知不自覺中...