这个:
[{a: 1, b: 2}, {a: 3, b: 4}].each do |a:, b:| p a end
Run Code Online (Sandbox Code Playgroud)
在 Ruby 2.7 中引发以下警告
警告:不推荐使用最后一个参数作为关键字参数;也许 ** 应该添加到通话中
我知道这each是将散列传递给块,并且块现在接受|a:, b:|作为命名参数但是,有什么方法可以在这种情况下正确解构散列?
我不确定,但我认为也许这个想法是使用模式匹配进行哈希解构?例如:
{a: 1, b: 2}.tap do |args|
args in {a: a, b: b} # !!!
p a
end
Run Code Online (Sandbox Code Playgroud)
然而,目前默认情况下,这将显示一条警告(可以禁用):
模式匹配是实验性的,其行为可能会在 Ruby 的未来版本中发生变化!
| 归档时间: |
|
| 查看次数: |
702 次 |
| 最近记录: |