方法 Method
什麼是方法呢?
在物件導向程式語言中,我們將程式法擬人化,讓設計者更方便使用程式碼,而「物件」本身含有「狀態」與「行為」,因此物件應有自己的運作方式。
當我們將訊息傳給物件,物件便會回應我們的需求,不一定需要了解物件內實際的運作方式。而這個允許我們要求物件執行的工作,就稱之為方法(method)。
如何使用方法?
*首先:定義方法
在Ruby世界,使用def
…end
來定義方法。
後面加上括號()
可以傳入參數,若想要傳多個參數可以使用逗號,
。
1 | def eat(food) |
*第二:呼叫方法
方法定義好在那邊,其實是無法使用的,若我們要執行已經定義好的方法,可以利用:
- 點符號
.
來呼叫方法,接收的物件位於符號左側。 - 或是直接呼叫也可以。
- 定義方法時,Ruby會將方法名稱存成符號(symbol),可使用內建
send
來呼叫。
1 | # 1.點符號 |
PS:
- length:可以計算長度
- 省略小括號:Ruby開發者希望設計者可以輕鬆靈活使用程式碼,因此設計許多小巧思在Ruby裏頭,「省略小括號」便是其中之一,讓程式碼閱讀起來更像文章。因此大家在轉換語言時要注意其他程式語言可不像Ruby這麼省略唷!
變數與方法
由於Ruby省略小括號的關係,使得方法看起來跟區域變數長得一樣,若同一個範圍內遇到兩者,該如何分別印出呢?
1 | eat = tofu # eat變數指向tofu |
以上例子可以得知,兩者同時存在會以區域變數為優先,若要呼叫方法,加上()
就可以囉!
參考資料
- 更多衍伸知識,可以參考龍哥的書:為你自己學 Ruby on Rails方法與程式碼區塊(block)
- 【Ruby 學習筆記 — 08】方法(method)
- Ruby 使用手冊方法 Methods
本文於 2020-09-18 發表在舊網站。