【问题标题】:How to set a default value for hashtable in ruby?如何在 ruby​​ 中为哈希表设置默认值?
【发布时间】:2016-01-31 13:30:25
【问题描述】:

在 ruby​​ 中用 JSON.parse() 填充哈希表后,是否可以在 ruby​​ 中设置哈希表的默认值?

【问题讨论】:

  • 一定又是那个著名的 Horrible-questions-on-StackOverflow 时间
  • 除非我误解了,否则我认为您如何获得哈希值并不重要。

标签: ruby json parsing hashtable default


【解决方案1】:

您可以使用Hash#default_proc 方法设置哈希的默认值。

例如,假设:

h = { :a=>1, :b=>2 }

如果 h 没有键 k 你希望 h[k] 返回一个空数组。你可以这样做:

h.default_proc = ->(h,k) { [] } # could write h.default_proc = ->(*) { [] }

h[:a] #=> 1
h[:b] #=> 2
h[:c] #=> []
h #=> { :a=>1, :b=>2 } # h is unchanged

如果你想将键和值添加到哈希中:

h.default_proc = ->(h,k) { h[k] = [] }

h[:a] #=> 1
h[:b] #=> 2
h[:c] #=> []
h #=> {:a=>1, :b=>2, :c=>[]} 

【讨论】:

  • 如果参数不相关,也可以使用h.default_proc = -> (*) { [] } 忽略它们。
猜你喜欢
  • 1970-01-01
  • 2013-04-16
  • 1970-01-01
  • 2021-02-05
  • 1970-01-01
  • 1970-01-01
  • 2018-01-06
  • 2014-10-10
  • 2013-03-25
相关资源
最近更新 更多