ruby中的可选参数/参数

时间:2016-08-16 14:41:52

标签: ruby-on-rails ruby

我有想要传递可选参数的方法。默认情况下,我想将该参数设置为nil。这是我的方式:

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

我将该函数称为my_function(2, 5)。我收到的错误是: “错误的论点数量(给定2,预期为1)”

我在这里做错了吗?我希望在一些调用期间传递arg2的值,并希望它为零。因此,当我没有为arg2传递值时,我的函数调用看起来像my_function(2)

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