2010年4月17日 星期六

Ruby 快速筆記: Hello Ruby

Hello Ruby

不可免俗得來一下 Hello Ruby
puts "Hello Ruby!"  # 螢幕印出 Hello Ruby!
puts跟C/C++的用法一樣,輸出字串到螢幕上並附上一個換行\n。

Ruby有一個蠻有趣的特性,就是呼叫函數時若不會造成歧義,可省略括號。
puts("Hello Ruby")  
puts "Hello Ruby"  # 這兩行意思一樣

這有什麼好處呢?除了少敲幾下鍵盤外,可以讓code看起來更簡單清爽
例如Ruby 的 setter
s = Song.new
s.title="星晴"     # 這行原本是 s.title=("星晴") 
s.singer="周滷蛋"  # 看似直接存取成員變數,其實是透過setter函數
                  # 兼顧了物件的封裝性跟程式碼的可讀性

Ruby Way

Ruby允許函數使用少數幾個特殊符號作為的結尾。
而這些符號都有特殊的意義,例如上面提到的等號(=)通常就拿來作為setter
還有問號(?) 以問號結尾的函數會回傳True/False
2.zero?    # falsev  (是零嗎?)
[].empty?  # true    (陣列是空的嗎?)

驚嘆號(!)代表危險,或者會改動原本的變數值
s = "DAVID"
s.downcase    # 回傳"david" ,但s依然是"DAVID"。
s.downcase!   # s變成"david"

這種規則就叫做 Ruby way