我有想要传递可选参数的方法。默认情况下,我想将该参数设置为nil。这是我的方式:
def my_function(arg1, arg2: nil)
# Do something
end
我将该函数称为my_function(2, 5)
。我收到的错误是:
“错误的论点数量(给定2,预期为1)”
我在这里做错了吗?我希望在一些调用期间传递arg2的值,并希望它为零。因此,当我没有为arg2传递值时,我的函数调用看起来像my_function(2)
。
答案 0 :(得分:2)
试试
def my_function(arg1, arg2 = nil)
答案 1 :(得分:1)
您正在定义默认关键字参数(与位置参数相对)。您可以使用my_function(2)
以及my_function(2, arg2: 5)
调用您已定义的功能。如果您想使用位置参数,可以将其定义为def my_function(arg1, arg2 = nil)
以下是关键字参数的一些细节。 https://robots.thoughtbot.com/ruby-2-keyword-arguments