蘋果屋

          BlogJava 首頁(yè) 新隨筆 聯(lián)系 聚合 管理
            2 Posts :: 0 Stories :: 0 Comments :: 0 Trackbacks
          ?

          Ruby的“單行程序”

          為了使您適應(yīng)腳本語(yǔ)言,首先介紹幾個(gè)Ruby的單行程序。

          # 經(jīng)典的 Hello world.print "Hello world\n"
          # 列出輸入文件中包含”From”的行while gets(); print if /From / end
          # 向文件中添加行號(hào)while gets(); print $., ":", $_ end
          # π的計(jì)算print 4*Math.atan2(1,1), "\n"

          Ruby的注釋

          Ruby的注釋是指從#開始到該行結(jié)束。

          Ruby的表達(dá)式

          Ruby的表達(dá)式包括下列內(nèi)容(主要的)。

          字符串
          字符串是指被單引號(hào)(')或雙引號(hào)(")括起來(lái)的部分。在用雙引號(hào)括起來(lái)的字符串中,可以使用反斜杠(\)來(lái)指定轉(zhuǎn)義字符,這同C語(yǔ)言是一樣的。同時(shí),以#{}括起來(lái)的表達(dá)式的結(jié)果也被置入其中。
          數(shù)值
          整數(shù),浮點(diǎn)數(shù)。
          數(shù)組/散列表
          用[]括起來(lái)的一串表達(dá)式是數(shù)組,而以{}括起來(lái)的一串表達(dá)式是散列表。
          散列表是一種可以把任意類型的對(duì)象都當(dāng)成索引的數(shù)組。散列表有時(shí)也叫做哈希表或辭典。
          變量/常數(shù)
          Ruby中有常數(shù)和3種變量。變量和常數(shù)的區(qū)別在于第一個(gè)字符有所不同。
          局部變量
          變量名以小寫英文字母開始。使用時(shí),需要以賦值的方式進(jìn)行初始化。
          全局變量
          以$開始。未初始化的值為nil。
          實(shí)例變量
          以@開始。未初始化的值為nil。
          類變量
          以@@開始。未初始化的值為nil。
          類常數(shù)
          以大寫英文字母開始。未初始化的值為nil。
          賦值
          變量賦值方法如下。
          變量=表達(dá)式
          調(diào)用方法(函數(shù))
          執(zhí)行對(duì)象固有操作(方法)的方法如下
          表達(dá)式.方法名表達(dá)式.方法名(表達(dá)式..)
          在不引起混淆的情況下,可以省略參數(shù)的括號(hào)。
          調(diào)用某方法執(zhí)行主體self的方法時(shí),可以省略最開始的表達(dá)式。
          方法名方法名(表達(dá)式..)
          區(qū)分無(wú)參數(shù)的方法調(diào)用和局部變量的方法是看看有沒(méi)有賦值過(guò)程。
          操作符表達(dá)式
          普通的算式可以用(基本上與C語(yǔ)言一樣的)操作符來(lái)表示。但內(nèi)部是把操作符當(dāng)作方法調(diào)用(以操作符作為方法名)來(lái)處理的。

          Ruby的語(yǔ)句

          Ruby使用分號(hào)(;)或換行來(lái)分隔表達(dá)式,表達(dá)式串起來(lái)構(gòu)成語(yǔ)句。語(yǔ)句的值取決于最后執(zhí)行的表達(dá)式的值。

          Ruby的流程控制結(jié)構(gòu)

          Ruby中可以使用下列流程控制結(jié)構(gòu)。

          • if表達(dá)式 then代碼塊 [elsif表達(dá)式 then代碼塊]..[else代碼塊]end
          • case表達(dá)式when表達(dá)式..;代碼塊...[else代碼塊]end
          • while表達(dá)式;代碼塊end
          • for變量..in表達(dá)式;代碼塊end

          if和while的意思與通常的語(yǔ)言基本相同。可以使用分號(hào)或換行來(lái)代替if代碼塊中的then。請(qǐng)注意Ruby使用elsif代替C語(yǔ)言中的else if。

          case是把若干個(gè)比較歸為一體的控制結(jié)構(gòu)。

          for可以使用循環(huán)把數(shù)組等的元素分別賦值給變量。

          循環(huán)內(nèi)可以使用下列語(yǔ)句。

          break
          中斷循環(huán)(相當(dāng)于C語(yǔ)言的break)。
          next
          開始下一次循環(huán)(相當(dāng)于C語(yǔ)言的continue)。
          redo
          重新執(zhí)行塊的第一行。

          常用的語(yǔ)句

          介紹幾個(gè)Ruby程序中常用的語(yǔ)句。這些語(yǔ)句是對(duì)象類的方法,可以在任何類中使用,就如同使用函數(shù)一樣。

          exit([status])
          結(jié)束程序的運(yùn)行。若為status指定了一個(gè)整數(shù)的話,該整數(shù)就成為結(jié)束status。默認(rèn)的status值為0。
          gets
          從命令行參數(shù)指定的文件(群)中讀取一行,然后把該行的內(nèi)容作為字符串返回。若沒(méi)有制定命令行參數(shù)的話,則從標(biāo)準(zhǔn)輸入中讀取。讀取的字符串可以被賦值給變量$_。遇到文件結(jié)束返回nil(偽)。
          while gets  ...end
          上面就是典型的用法。
          open(文件名[,mode])
          打開文件。mode是字符串,就和C的fopen一樣。省略時(shí)以讀取模式打開。
          print
          輸出函數(shù)。按順序?qū)?shù)輸出到標(biāo)準(zhǔn)輸出上。省略參數(shù)時(shí)則輸出變量$_的值。
          posted on 2007-03-12 12:50 錢磊 閱讀(271) 評(píng)論(0)  編輯  收藏

          只有注冊(cè)用戶登錄后才能發(fā)表評(píng)論。


          網(wǎng)站導(dǎo)航:
           
          主站蜘蛛池模板: 车险| 蒲江县| 通许县| 东乡族自治县| 古浪县| 洛宁县| 汽车| 浙江省| 共和县| 邹平县| 中西区| 民和| 兰西县| 都昌县| 南平市| 高州市| 大渡口区| 元朗区| 大邑县| 连州市| 玉树县| 饶平县| 奉新县| 资溪县| 绵竹市| 建阳市| 平利县| 博白县| 西盟| 略阳县| 浦东新区| 广灵县| 集贤县| 宜兰县| 五原县| 稻城县| 龙陵县| 米脂县| 安丘市| 明光市| 阳西县|