从哈希中返回一个键?

时间:2011-07-05 22:45:00

标签: ruby hash key

我想知道如何从哈希中返回特定的密钥?

示例:

moves = Hash["Kick", 100, "Punch", 50]

如何从这个哈希中返回第一个“Kick”键?

注意:我知道以下函数将返回散列中的所有键,但我只想返回一个键。

moves.keys #=> ["Kick", "Punch"]

3 个答案:

答案 0 :(得分:20)

您可以使用:

first_key, first_value = moves.first

或等效地:

first_key = moves.first.first

非常好:

first_key = moves.each_key.first

另一种可能性,moves.keys.first将为所有可能非常大的密钥构建一个中间数组。

请注意,Ruby 1.8不保证散列顺序,因此您获得的密钥并不总是相同。在Ruby 1.9中,您将始终获得相同的密钥(在您的示例中为"Kick")。

答案 1 :(得分:16)

    moves.keys[0] 

会给你第一把钥匙。 您可以通过更改传递的参数(0,1,...等)

来获取所有键

答案 2 :(得分:8)

moves.keys.first将实现这一目标。