ruby - 哈希作为 def 参数

标签 ruby hash function

以下是可能的吗?我一直遇到哈希的奇数列表

def thores_hammer(bling)
  hammer_bling = { bling }
end

thores_hammer :rubys    => 5,
              :emeralds => 5,
              :souls    => 333

提前致谢。

最佳答案

您遇到错误的原因是 Hash 是在thores_hammer 方法时隐式创建的 被调用 - 所以当你执行 { bling } 时,你正在创建一个哈希 只有一个键(它本身就是一个散列)并且没有值。就这样 错误。

您需要做的就是去掉花括号:

irb> def thores_hammer(bling)
       hammer_bling = bling
     end
#=> nil
irb> thores_hammer :rubys    => 5,
                   :emeralds => 5,
                   :souls    => 333
#=> {:rubys=>5, :emeralds=>5, :souls=>333}

关于ruby - 哈希作为 def 参数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/779054/

相关文章:

javascript - Ruby on Rails - 检查 Assets (.js) 的加载位置

perl - 为什么所有这些访问数组的方法都有效?

Javascript onclick 事件无法调用函数

c - C中的动态列表头疼,反向打印列表?为什么?

php - 在 HighCharts 中单击饼图的图例时显示工具提示并选择饼图切片

ruby-on-rails - 表单数据未通过 POST 以参数形式发送

ruby-on-rails - 如何在 ruby​​ on rails 中添加速率限制器?

ruby - Chef-Ruby-ArgumentsError预期为0

ruby - 为什么在 Ruby 中定义新散列的简洁方式不起作用(它们都引用同一个对象)

arrays - Ruby 数组上的未定义方法 'to_h'