這裡將會 go through 一些Ruby coding的 Basic rule, 首先請參考下面代碼, 在該代碼提供一個函數 將輸入參數代表的名字, 加上Hello 後回傳:
執行結果:
在 'puts sayGoodnight("John-Boy")' 中, 事實上是在呼叫函數 sayGoodnight 後 再將回傳值 給另一個函數 puts 進行輸出動作. 事實上以下的式子是相等的:
這裡需要提出來說明的事在 " " 與 ' ' 中的字串在Ruby中的處理會是不一樣, 在 ' ' 中的字串會被當作存字串處理, 而在" " 中的字串會被做特殊處理, 如特殊字元 "\n" 將會被替換成換行符號, 但 '\n' 卻只是被當作'\' 與 'n' 的兩個字元處理, 參考如下代碼:
輸出:
並且如果在 " " 內有出現 "#{變數名}", 則該代碼塊將被取代為對應的變數值. 所以上述的函數可以被取代成:最後Ruby 在針對 區域變數, 全域變數, 物件區域變數 與 類區域變數的變數名需加上對應的前置符號:
- def sayGoodnight(name)
- result = "Goodnight, " + name
- return result
- end
- # Time for bed...
- puts sayGoodnight("John-Boy")
- puts sayGoodnight("Mary-Ellen")
執行結果:
在 'puts sayGoodnight("John-Boy")' 中, 事實上是在呼叫函數 sayGoodnight 後 再將回傳值 給另一個函數 puts 進行輸出動作. 事實上以下的式子是相等的:
- puts sayGoodnight "John-Boy"
- puts sayGoodnight("John-Boy")
- puts(sayGoodnight "John-Boy")
- puts(sayGoodnight("John-Boy"))
這裡需要提出來說明的事在 " " 與 ' ' 中的字串在Ruby中的處理會是不一樣, 在 ' ' 中的字串會被當作存字串處理, 而在" " 中的字串會被做特殊處理, 如特殊字元 "\n" 將會被替換成換行符號, 但 '\n' 卻只是被當作'\' 與 'n' 的兩個字元處理, 參考如下代碼:
- puts 'test\ntest2'
- puts "test\ntest2"
輸出:
並且如果在 " " 內有出現 "#{變數名}", 則該代碼塊將被取代為對應的變數值. 所以上述的函數可以被取代成:
- def sayGoodnight(name)
- "Goodnight, #{name}"
- end
- ...(以下省略)...
This message was edited 9 times. Last update was at 11/09/2010 12:00:26
沒有留言:
張貼留言