gpt4 book ai didi

ruby - Ruby 中的关键字参数解包 (splat)

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

我觉得下面发生的事情有点奇怪。

def f(a, b)
puts "#{a} :: #{b}"
end

f(*[1, 2], **{}) # prints "1 :: 2"

hash = {}
f(*[1, 2], **hash)
ArgumentError: wrong number of arguments (3 for 2)

f(*[1, 2], **Hash.new)
ArgumentError: wrong number of arguments (3 for 2)

这是编译器优化功能吗?

最佳答案

这是一个 Ruby 的错误,已多次报告(例如我的 here)但尚未修复。

我猜想自从引入了关键字参数特性后,double splat 语法就变得模糊不清了,这就是这个 bug 的间接原因。我听说 Matz 正在考虑在未来的某个 Ruby 版本中引入一种新语法来区分散列和关键字参数。

关于ruby - Ruby 中的关键字参数解包 (splat),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42848700/

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