gpt4 book ai didi

具有多个指向相同值的键的 Ruby 哈希

转载 作者:太空宇宙 更新时间:2023-11-03 17:00:47 25 4
gpt4 key购买 nike

我正在寻找一种方法,我会在散列中说同义词键。

我希望多个键指向同一个值,这样我就可以通过这些键中的任何一个读/写一个值。

例如,它应该像那样工作(假设 :foo 和 :bar 是同义词)

hash[:foo] = "foo"
hash[:bar] = "bar"
puts hash[:foo] # => "bar"

更新 1

让我补充几个细节。我需要这些同义词的主要原因是,我从外部源接收键,这是我无法控制的,但多个键实际上可能与相同的值相关联。

最佳答案

重新思考你的数据结构

根据您想要访问数据的方式,您可以通过将键或值设为数组来使它们成为同义词。无论哪种方式,您都需要做更多的工作来解析同义词而不是它们共享的定义词。

作为定义的键

例如,您可以使用键作为同义词的定义。

# Create your synonyms.
hash = {}
hash['foo'] = %w[foo bar]
hash
# => {"foo"=>["foo", "bar"]}

# Update the "definition" of your synonyms.
hash['baz'] = hash.delete('foo')
hash
# => {"baz"=>["foo", "bar"]}

作为定义的值

你也可以颠倒这个结构,让你的键成为同义词数组。例如:

hash = {["foo", "bar"]=>"foo"}
hash[hash.rassoc('foo').first] = 'baz'
=> {["foo", "bar"]=>"baz"}

关于具有多个指向相同值的键的 Ruby 哈希,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15913950/

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