* 陣列可用 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 方法,我們能夠針對任何系統信號,指派不同應對措施。
*