"value2"} 我有一个变量 k,它的值为 'key1' 或 'key2'。 我想将 k 的值放入变量 v 中。 有-6ren">
gpt4 book ai didi

Ruby - 获取哈希值

转载 作者:数据小太阳 更新时间:2023-10-29 06:27:04 24 4
gpt4 key购买 nike

我有一个像这样的散列

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

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

我想将 k 的值放入变量 v 中。

有没有什么方法可以不使用 ifcase 来实现这一点?首选单线解决方案。请帮忙。

最佳答案

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

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"

关于Ruby - 获取哈希值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8676531/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com