在ruby 3之前,可以做类似这样的事情
def test a, **o p a, o end t = [:ok, **{ok: 2}] test *t
它会恰当地分配:确定到a和{确定:2}到o在ruby 3中调用你会得到
ArgumentError (wrong number of arguments (given 2, expected 1))
是否有解决方法来拆分在第二个位置保存关键字参数的数组参数?
093gszye1#
如果您需要将第二个参数作为散列发送,则需要执行以下操作:
def test a, o p a, o end t = [:ok, {ok: 2}] test *t
因为关键字和位置参数是分开的。
1条答案
按热度按时间093gszye1#
如果您需要将第二个参数作为散列发送,则需要执行以下操作:
因为关键字和位置参数是分开的。