繁体   English   中英

ruby 3 array argument splat with keyword arguments

[英]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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM