gpt4 book ai didi

ruby - double * (splat) 运算符做什么

转载 作者:数据小太阳 更新时间:2023-10-29 06:16:37 27 4
gpt4 key购买 nike

你见过这样声明的函数吗?

def foo a, **b
...
end

我知道单个 * 是 splat 运算符。 ** 是什么意思?

最佳答案

Ruby 2.0 引入了关键字参数,** 的作用类似于*,但用于关键字参数。它返回带有键/值对的哈希。

对于这段代码:

def foo(a, *b, **c)
[a, b, c]
end

这是一个演示:

> foo 10
=> [10, [], {}]
> foo 10, 20, 30
=> [10, [20, 30], {}]
> foo 10, 20, 30, d: 40, e: 50
=> [10, [20, 30], {:d=>40, :e=>50}]
> foo 10, d: 40, e: 50
=> [10, [], {:d=>40, :e=>50}]

关于ruby - double * (splat) 运算符做什么,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18289152/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com