我已经看到了一些在创建方法时传递默认参数的示例,但是如果您只想替换第一个和第三个参数,它们似乎都无法解决...这是一个示例
def foo(a = 1, b = 2, c = 3)
puts [a, b, c]
end
foo(1, 2)
#=> [1, 2, 3]
当我尝试分配a = 5和c = 7并保持b为默认值时:
foo(a=5,c=7)
我知道
=> 5,7,3
但是我希望5,2,7
什么是实现此目的的正确方法?
答案 0 :(得分:4)
使用关键字参数吗?
def foo(a: 1, b: 2, c: 3)
puts [a, b, c]
end
foo(a: 5, c: 7)
答案 1 :(得分:0)
我已经看到了一些在创建方法时传递默认参数的示例,但是如果您只想替换第一个和第三个参数,它们似乎都无法解决...
那是因为不可能。
默认参数从左到右绑定。我在回答这些问题时写了更多关于参数如何绑定到参数的信息: