前面在討論變數的時候,不曉得大家有沒有注意到def
跟 end
。
這個在 Rails 裡面很常見,但這邊不會介紹到 Rails ,後面會在介紹它。
那你就會問,為什麼需要使用方法?
主要分兩點:
在 Ruby 定義方法,使用的是 def
他長得是這樣的:
def method_name(param1,param2)
# 程式邏輯
end
那我們就實際來寫一個方法吧!
def say_hello_to(name)
puts "hello, #{name}"
end
恭喜!你已經寫了你的第一個方法了!
既然你已經寫了一個方法,那我們來呼叫他吧!
say_hello_to("kitty") # hello, kitty
在 Ruby 中,很常省略東西,以上面的例子來看:
say_hello_to "kitty" # hello, kitty
我們可以視情況而定,去選擇要不要省略括號。
在定義方法時,可幫參數上預設值:
def say_something(message = "something")
puts "say #{message}"
end
say_something() #say something
say_something("yes") #say yes
所以上面的例子,你會發現,如果沒有傳參數給 say_something 的話,say_something()
會印出 say something
,如果有給,他就會印出 say yes
。
有寫過程式的人都知道用 return 回傳。
def multiplication(num1, num2)
return num1*num2
end
puts multiplication(2, 5) # 10
想不到吧!在 Ruby 中,竟然連 return 都可以省略。
在 Ruby 中它會自動回傳方法(method)最後一行的結果,通常會省略return
def double(num)
num * 2
end
puts double(10) # 20
參考資料: