所以我有一个看起来像这样的哈希:
hash = { ["1", "2", "3"]=>"a", ["4", "5", "6"]=>"b", ["7", "8", "9"]=>"c" }
虽然当我尝试做一些事情时hash[0],我的控制台中会出现一个新行,如果我尝试hash[0][0]它会弹出一个错误,指出 [] 方法未定义。
现在我想知道如何以一种可以执行类似操作的方式访问它hash["1"],它会返回给我"a".
我假设因为它让我以这种方式制作哈希,所以我可以访问里面的内容。
所以我有一个看起来像这样的哈希:
hash = { ["1", "2", "3"]=>"a", ["4", "5", "6"]=>"b", ["7", "8", "9"]=>"c" }
虽然当我尝试做一些事情时hash[0],我的控制台中会出现一个新行,如果我尝试hash[0][0]它会弹出一个错误,指出 [] 方法未定义。
现在我想知道如何以一种可以执行类似操作的方式访问它hash["1"],它会返回给我"a".
我假设因为它让我以这种方式制作哈希,所以我可以访问里面的内容。
我不确定你为什么要创建一个带有数组键的哈希,但它可以工作:)
hash = { ["1", "2", "3"]=>"a", ["4", "5", "6"]=>"b", ["7", "8", "9"]=>"c" }
hash[["1", "2", "3"]]
=> "a"
您可能需要考虑相反的情况:
hash = { "a"=>["1", "2", "3"], "b"=>["4", "5", "6"], "c"=>["7", "8", "9"] }
hash["a"]
=> ["1", "2", "3"]
没有直接的内置方法可以访问这样的内容,但是通过使用,select您可以过滤掉具有“1”的键/值对并获取它的值:
hash.select { |key| key.include?("1") }.values.first
这假设每个整数只存在于一个键中。