在 Ruby 中,我想要类似的东西
my_hash = {:a => [b,c,h], :d => [e,f,g]..}
而不是
my_hash= {:a => b ,:a => c ,:a => h , :d => e , :d=> f ,:d => g }
. 我不能使用数组作为值,因为我想获取值的键,即 my_hash.key(c) 应该返回一个 . 有没有人知道如何使用 ruby 哈希类来做到这一点,或者是否有任何其他数据结构。谢谢。
在 Ruby 中,我想要类似的东西
my_hash = {:a => [b,c,h], :d => [e,f,g]..}
而不是
my_hash= {:a => b ,:a => c ,:a => h , :d => e , :d=> f ,:d => g }
. 我不能使用数组作为值,因为我想获取值的键,即 my_hash.key(c) 应该返回一个 . 有没有人知道如何使用 ruby 哈希类来做到这一点,或者是否有任何其他数据结构。谢谢。
你应该有相反的键和值。
{b => :a, c => :a, h => :a, e => :d, f => :d, g => :d, ...}
反转哈希可能是你最好的选择,但是,嘿,只是为了好玩......
class Hash
def key_array_with(val)
self.keys.select { |k| k.include?(val) }.first
end
end
h = {[:b,:c,:h] => :a, [:e,:f,:g] => :d}
h[h.key_array_with(:c)]