Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/ruby/24.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
在Ruby中只使用一个键在哈希中查找键名的有效方法?_Ruby_Hash_Key - Fatal编程技术网

在Ruby中只使用一个键在哈希中查找键名的有效方法?

在Ruby中只使用一个键在哈希中查找键名的有效方法?,ruby,hash,key,Ruby,Hash,Key,我有一个散列数组,每个散列只包含一个键/值对。是否有更有效的方法访问密钥?这是我丑陋的解决方案 array_of_hashes = [ {:some => "stuff"}, {:other => "stuff"} ] array_of_hashes.each do |hash| hash.each do |key, value| puts key end 在我看来,一定有某种简单的表达方式 array_of_hashes.each do |hash|

我有一个散列数组,每个散列只包含一个键/值对。是否有更有效的方法访问密钥?这是我丑陋的解决方案

array_of_hashes = [
  {:some => "stuff"},
  {:other => "stuff"}
  ]

array_of_hashes.each do |hash|
  hash.each do |key, value|
    puts key
end
在我看来,一定有某种简单的表达方式

array_of_hashes.each do |hash|
  puts hash.key # where this would simply access the key
end
或者可能

array_of_hashes.each do |hash|
  puts hash.keys[0]
end

但这仍然感觉有点马虎

我不确定您追求的是什么样的效率,但这至少是非常简短的:

hashes = [
  { a: 'a'},
  { b: 'b'},
  { c: 'c'}
]

hashes.flat_map(&:keys)
# => [:a, :b, :c]

我不确定你追求的是什么样的效率,但这至少是非常短暂的:

hashes = [
  { a: 'a'},
  { b: 'b'},
  { c: 'c'}
]

hashes.flat_map(&:keys)
# => [:a, :b, :c]

array\u of_hashes.each{h | put h.first.first}
谢谢,我想这就是我用我的第二个选项得到的:
array\u of_hashes.each{h | put h.first}
谢谢,我想这就是我用我的第二个选项得到的:这意味着你必须创建数组,然后
put
it,但这通常比
放置
每个元素(而不是创建数组)更好,因为以后可能需要数组<代码>放置
调试每个元素都可以,当然,在这种情况下@mudasobwa的建议就可以了。谢谢。为了澄清这一点,我正在寻找一种方法,该方法对于只有一个键值对的散列,在语法上更清晰,而不是假设多个元素的方法。它甚至可能不存在,因为散列通常有不止一个元素,但因为我是新手,我想我应该检查一下。谢谢你的帮助!这意味着您必须创建数组,然后将其放入
中,但这通常比将每个元素放入
中(而不是创建数组)更好,因为您以后可能需要数组<代码>放置
调试每个元素都可以,当然,在这种情况下@mudasobwa的建议就可以了。谢谢。为了澄清这一点,我正在寻找一种方法,该方法对于只有一个键值对的散列,在语法上更清晰,而不是假设多个元素的方法。它甚至可能不存在,因为散列通常有不止一个元素,但因为我是新手,我想我应该检查一下。谢谢你的帮助!