[英]ruby 3 array argument splat with keyword arguments
在 ruby 3 之前可以这样做
def test a, **o
p a, o
end
t = [:ok, **{ok: 2}]
test *t
它会正确分配
:ok 到 a 和 {ok: 2} 到 o
调用 ruby 3
你会得到
ArgumentError (wrong number of arguments (given 2, expected 1))
是否有解决 splat 数组参数的问题,该参数在第二个 position 上保存关键字参数?
如果您需要将第二个参数作为 hash 发送,您需要执行以下操作:
def test a, o
p a, o
end
t = [:ok, {ok: 2}]
test *t
因为分隔关键字和位置 arguments。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.