2016-08-16 132 views
0

我有沒有辦法,我想通過一個可選的參數。默認情況下,我想將該參數設置爲nil。這是我做的方式:可選參數/參數在紅寶石

def my_function(arg1, arg2: nil) 
    # Do something 
end 

我把這個功能稱爲my_function(2, 5)。我得到一個錯誤,說: 「錯誤的參數數量(給定2,預期1)」

我在這裏做錯了什麼?我希望在某些調用期間爲arg2傳遞一個值,並且希望在其他情況下爲零。所以當我沒有爲arg2傳遞一個值時,我的函數調用看起來像my_function(2)

+2

你也可以使用'創建my_function(2 ARG2:5)' –

回答

2

試用

def my_function(arg1, arg2 = nil) 
+1

太快... –

1

你定義了默認的關鍵字參數(VS一個位置參數)。您可以調用您用my_function(2)以及my_function(2, arg2: 5)定義的函數。如果你想用一個位置參數,你可以將它定義爲def my_function(arg1, arg2 = nil)

這裏是關鍵字參數的一些細節。 https://robots.thoughtbot.com/ruby-2-keyword-arguments