ruby - 在 Ruby 2.7 中解构块参数中的哈希
问题描述
这:
[{a: 1, b: 2}, {a: 3, b: 4}].each do |a:, b:| p a end
在 Ruby 2.7 中引发以下警告
警告:不推荐使用最后一个参数作为关键字参数;也许 ** 应该添加到调用中
我知道这each
是将哈希传递给块,并且块现在接受|a:, b:|
命名参数但是,有没有办法在这种情况下正确解构哈希?
解决方案
我不确定,但我认为这个想法可能是使用模式匹配进行哈希解构?例如:
{a: 1, b: 2}.tap do |args|
args in {a: a, b: b} # !!!
p a
end
然而,目前默认情况下,这将显示一个警告(可以禁用):
模式匹配是实验性的,在未来的 Ruby 版本中行为可能会改变!
推荐阅读
- javascript - 将此单人游戏转换为多人游戏
- javascript - BOOTSTRAP 4 - 将 Scrollspy 加入到 Scrolltop
- python - 检查一个数字是否是其他两个数字的总和
- qt - 可以将 QT GUI 线程作为后台线程移动,并将自定义线程和等待循环作为主线程运行
- c# - 在 ListView 的第一行和第三列添加值
- r - QuasR 运行失败示例
- macos - 如何从 NSViewController 更新 AppDelegate 创建的状态项
- java - 如何通过char数组搜索String数组?
- vuejs2 - 带有道具的数组过滤器似乎无法正常工作
- r - 找不到对象“myvariable”。但是如果我运行 str(dataframe),我的变量就存在