2010年9月10日 星期五

[ Ruby 教學 ] Ruby.new : Some Basic Ruby


這裡將會 go through 一些Ruby coding的 Basic rule, 首先請參考下面代碼, 在該代碼提供一個函數 將輸入參數代表的名字, 加上Hello 後回傳:
  1. def sayGoodnight(name)  
  2.   result = "Goodnight, " + name  
  3.   return result  
  4. end  
  5.   
  6. # Time for bed...  
  7. puts sayGoodnight("John-Boy")  
  8. puts sayGoodnight("Mary-Ellen")  
1. 首先由上面代碼可以看出Ruby Coding的簡潔, 它不像其他語言需要在函數前後加上'{ }'標示, 並且使用符號'#' 進行註解.
2. 函數定義是以 def 開頭, 並以 end 結尾.
3. 變數的類型定義並不需特別聲明. 只需要賦值給變數名即可.

執行結果:
Goodnight, John-Boy
Goodnight, Mary-Ellen

在 'puts sayGoodnight("John-Boy")' 中, 事實上是在呼叫函數 sayGoodnight 後 再將回傳值 給另一個函數 puts 進行輸出動作. 事實上以下的式子是相等的:
  1. puts sayGoodnight "John-Boy"  
  2. puts sayGoodnight("John-Boy")  
  3. puts(sayGoodnight "John-Boy")  
  4. puts(sayGoodnight("John-Boy"))  

這裡需要提出來說明的事在 " " 與 ' ' 中的字串在Ruby中的處理會是不一樣, 在 ' ' 中的字串會被當作存字串處理, 而在" " 中的字串會被做特殊處理, 如特殊字元 "\n" 將會被替換成換行符號, 但 '\n' 卻只是被當作'\' 與 'n' 的兩個字元處理, 參考如下代碼:
  1. puts 'test\ntest2'  
  2. puts "test\ntest2"  

輸出:
test\ntest2
test
test2

並且如果在 " " 內有出現 "#{變數名}", 則該代碼塊將被取代為對應的變數值. 所以上述的函數可以被取代成:
  1. def sayGoodnight(name)  
  2.   "Goodnight, #{name}"  
  3. end  
  4. ...(以下省略)...  
最後Ruby 在針對 區域變數, 全域變數, 物件區域變數 與 類區域變數的變數名需加上對應的前置符號:
1. 一般區域變數應該以小寫字元或underscore開頭
2. 全局/域變數需以 '$' 開頭.
3. 物件區域變數需以 '@' 開頭.
4. 類別區域變數虛以 '@@' 開頭.
5. 如果為類別名字, 應以大寫字母開頭, 如果為常數, 應為全部大寫 (ex. 如PI)
This message was edited 9 times. Last update was at 11/09/2010 12:00:26

沒有留言:

張貼留言

[Git 常見問題] error: The following untracked working tree files would be overwritten by merge

  Source From  Here 方案1: // x -----删除忽略文件已经对 git 来说不识别的文件 // d -----删除未被添加到 git 的路径中的文件 // f -----强制运行 #   git clean -d -fx 方案2: 今天在服务器上  gi...