【问题标题】:Ruby - getting value of hashRuby - 获取哈希值
【发布时间】:2011-12-30 05:44:41
【问题描述】:

我有一个像

这样的哈希

{:key1 => "value1", :key2 => "value2"}

我有一个变量k,其值为'key1''key2'

我想将k 的值放入变量v

有什么方法可以在不使用ifcase 的情况下实现这一目标?单线解决方案是首选。请帮忙。

【问题讨论】:

    标签: ruby hash key-value


    【解决方案1】:

    将键从字符串转换为符号,并在哈希中查找。

    hash = {:key1 => "value1", :key2 => "value2"}
    k = 'key1'
    
    hash[k.to_sym] # or iow, hash[:key1], which will return "value1"
    

    Rails 使用这个名为HashWithIndifferentAccess 的类,它在这种情况下被证明非常有用。我知道您只用 Ruby 标记了您的问题,但是您可以从 Rails 的源代码中窃取此类的实现,以避免在整个代码库中进行字符串到符号和符号到字符串的转换。它通过使用符号或字符串作为键来访问值。

    hash = HashWithIndifferentAccess.new({:key1 => "value1", :key2 => "value2"})
    hash[:key1]  # "value1"
    hash['key1'] # "value1"
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2018-02-04
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2016-03-07
      • 2015-05-26
      • 1970-01-01
      相关资源
      最近更新 更多