Ruby的“單行程序”
為了使您適應腳本語言,首先介紹幾個Ruby的單行程序,。 # 經(jīng)典的 Hello world.
print "Hello world\n"
# 列出輸入文件中包含”From”的行
while gets(); print if /From / end
# 向文件中添加行號
while gets(); print $., ":", $_ end
# π的計算
print 4*Math.atan2(1,1), "\n"
Ruby的注釋
Ruby的注釋是指從#開始到該行結(jié)束,。
Ruby的表達式
Ruby的表達式包括下列內(nèi)容(主要的)。
- 字符串
- 字符串是指被單引號(‘)或雙引號(")括起來的部分,。在用雙引號括起來的字符串中,,可以使用反斜杠(\)來指定轉(zhuǎn)義字符,這同C語言是一樣的,。同時,,以#{}括起來的表達式的結(jié)果也被置入其中。
- 數(shù)值
- 整數(shù),,浮點數(shù),。
- 數(shù)組/散列表
- 用[]括起來的一串表達式是數(shù)組,而以{}括起來的一串表達式是散列表,。
- 散列表是一種可以把任意類型的對象都當成索引的數(shù)組,。散列表有時也叫做哈希表或辭典。
- 變量/常數(shù)
- Ruby中有常數(shù)和3種變量,。變量和常數(shù)的區(qū)別在于第一個字符有所不同,。
- 局部變量
- 變量名以小寫英文字母開始。使用時,,需要以賦值的方式進行初始化。
- 全局變量
- 以$開始,。未初始化的值為nil,。
- 實例變量
- 以@開始。未初始化的值為nil,。
- 類變量
- 以@@開始,。未初始化的值為nil。
- 類常數(shù)
- 以大寫英文字母開始,。未初始化的值為nil,。
- 賦值
- 變量賦值方法如下,。
變量=表達式
- 調(diào)用方法(函數(shù))
- 執(zhí)行對象固有操作(方法)的方法如下
表達式.方法名
表達式.方法名(表達式..)
- 在不引起混淆的情況下,可以省略參數(shù)的括號,。
- 調(diào)用某方法執(zhí)行主體self的方法時,,可以省略最開始的表達式。
方法名
方法名(表達式..)
- 區(qū)分無參數(shù)的方法調(diào)用和局部變量的方法是看看有沒有賦值過程,。
- 操作符表達式
- 普通的算式可以用(基本上與C語言一樣的)操作符來表示,。但內(nèi)部是把操作符當作方法調(diào)用(以操作符作為方法名)來處理的。
Ruby的語句
Ruby使用分號(;)或換行來分隔表達式,,表達式串起來構(gòu)成語句,。語句的值取決于最后執(zhí)行的表達式的值。
Ruby的流程控制結(jié)構(gòu)
Ruby中可以使用下列流程控制結(jié)構(gòu),。
- if表達式 then代碼塊 [elsif表達式 then代碼塊]..[else代碼塊]end
- case表達式when表達式..;代碼塊...[else代碼塊]end
- while表達式;代碼塊end
- for變量..in表達式;代碼塊end
if和while的意思與通常的語言基本相同,。可以使用分號或換行來代替if代碼塊中的then,。請注意Ruby使用elsif代替C語言中的else if,。
case是把若干個比較歸為一體的控制結(jié)構(gòu)。
for可以使用循環(huán)把數(shù)組等的元素分別賦值給變量,。
循環(huán)內(nèi)可以使用下列語句,。
- break
- 中斷循環(huán)(相當于C語言的break)。
- next
- 開始下一次循環(huán)(相當于C語言的continue),。
- redo
- 重新執(zhí)行塊的第一行,。
常用的語句
介紹幾個Ruby程序中常用的語句。這些語句是對象類的方法,,可以在任何類中使用,,就如同使用函數(shù)一樣。
- exit([status])
- 結(jié)束程序的運行,。若為status指定了一個整數(shù)的話,,該整數(shù)就成為結(jié)束status。默認的status值為0,。
- gets
- 從命令行參數(shù)指定的文件(群)中讀取一行,,然后把該行的內(nèi)容作為字符串返回。若沒有制定命令行參數(shù)的話,,則從標準輸入中讀取,。讀取的字符串可以被賦值給變量$_。遇到文件結(jié)束返回nil(偽),。
while gets
...
end
- 上面就是典型的用法,。
- open(文件名[,mode])
- 打開文件。mode是字符串,就和C的fopen一樣,。省略時以讀取模式打開,。
- print
- 輸出函數(shù)。按順序?qū)?shù)輸出到標準輸出上,。省略參數(shù)時則輸出變量$_的值,。
|