2012年5月11日 星期五

* 陣列可用 join 轉換為字串,字串可用 split 轉換為陣列

* 關於RUBY :Symbol的定義:http://www.joinhelpworld.com/hitakeane/tech/tag/ruby-symbol

* guess.chop! 會刪除 guess 後的最後一個字元

* 「非破壞性的」(non-destructive) 的 chop(去除尾部空白);
     我們用 gets 去掉不要的換行字元。加入驚嘆號就是「破壞性的」(destructive) chop

- 那兩者有甚麼差別呢?
在 Ruby 中,我們一般在方法名稱後加上 '!' 或 '?'。驚嘆號(! 有時讀作 "bang!")代表具有破壞性,即會改變所接觸物件的值。chop! 會直接影響字串,但 chop 則會提供一個刪減後的版本,而不影響原本的物件。以下將闡釋兩者的差異。

* 用 gsub 將 ANSI 標記替換 (globally substitute) 到表示式中每個匹配的內容

* case 內部使用關聯運算子 (relationship operator) = = =,同一時間檢查數個條件。為保持 Ruby 的物件導向特質,出現在 when 條件內的物件會以 = = = 適當解釋。

* 有時候希望否定一個測試條件, unless 就是 if 的否定型,until 則是 while 的否定型。

* 共有四種方式能夠從內部中斷迴圈。
  - 第一種是 break,與 C 的一樣,表示完全逸出迴圈;
  - 第二種是 next,跳至迴圈下一個迭代 (iteration) 的起始處(等同於 C 的continue);
  - 第三種是 redo,可重新開始目前的迴圈。
  - 第四種從內部中斷迴圈的方式是 return。return 不單能逸出迴圈,更會逸出包含迴圈的方法。若提供一個參數值,則此方法會回傳這個值,否則會傳回 nil。

* 1.8.7 還有retry和redo的功能,不過retry在1.9.3就沒有了
  - 控制結構 retry 與迭代的迴圈一起運作,就能重新開始迴圈。
  - 控制結構  redo會令目前的迴圈重做一次迭代

* :: 運算子會通知 Ruby 直譯器,應向哪個模組查詢常數的值

* 如果想直接存取模組內的方法或常數而不需要使用 ::,可以 include 該模組。

* 利用 trap 方法,我們能夠針對任何系統信號,指派不同應對措施。

*

沒有留言:

張貼留言