
定義方法使用關鍵字 (keyword) def ,其後空一格接方法名稱,方法名稱後視需要可接小括弧,小括弧用來放參數列 (parameter list) ,方法可以有參數 (parameter) 也可以沒有參數,沒有參數的方法自然不需要小括弧,另外方法預設最後一個值為回傳值 (return value) ,亦可用 return 設定回傳值。我們舉一例如下
def big(a, b) if (a > b) return a else return b end end |
big() 方法回傳兩個參數中的較大值,參數數量則是依需求自己定義,這裡為兩個 a 與 b ,另外此例用了兩個 return ,這裡 return 就是方法結束執行,將控制權交還原本呼叫方法的地方。
我們將 big() 寫成一個完整範例
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 | def big(a, b) if (a > b) return a else return b end end puts puts big( 33 , 22 ) puts big( "John" , "Mary" ) puts = begin 《程式語言教學誌》的範例程式 檔名:big.rb 功能:示範 Ruby 程式 作者:張凱慶 時間:西元 2012 年 12 月 = end |
第 10 行先比較 33 與 22 的大小,然後印出哪一個比較大
10 | puts big( 33 , 22 ) |
第 11 行則是比較 "John" 與 "Mary" 的大小,字串比較是先比較第一個字元,按字母順序,順序越後面的值越大
11 | puts big( "John" , "Mary" ) |
執行結果如下

函數常見的運用為重複性質的工作,我們另舉一例如下
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 | def print_newline puts end def print_something(a) puts a end def return_something(a) a end print_newline print_something(return_something( "There is no spoon." )) print_newline = begin 《程式語言教學誌》的範例程式 檔名:printdemo.rb 功能:示範 Ruby 程式 作者:張凱慶 時間:西元 2012 年 12 月 = end |
這裡總共有三個方法, print_newline 就是簡單的印出新行
1 2 3 | def print_newline puts end |
print_something() 則是印出參數 a
5 6 7 | def print_something(a) puts a end |
return_something() 則是回傳參數,這裡可以看到當方法只有一個回傳值之時,就是回傳最後一個值
9 10 11 | def return_something(a) a end |
執行結果如下

學會方法後,我們要進一步來看看怎麼設計類別 (class) 囉!
中英文術語對照 | |
---|---|
方法 | method |
程式 | program |
關鍵字 | keyword |
參數列 | parameter list |
參數 | parameter |
回傳值 | return value |
類別 | class |
您可以繼續參考
基礎篇
相關目錄
回 Ruby 入門指南
回 Ruby 教材
回首頁
參考資料
http://www.rubyist.net/~slagell/ruby/methods.html
http://www.ruby-doc.org/docs/ProgrammingRuby/html/tut_methods.html
沒有留言:
張貼留言