【发布时间】:2012-10-04 13:12:15
【问题描述】:
我正在尝试从 ruby 中的哈希表中获取第一个键和值键。我不知道哈希的键值,因为它被传递给方法。我在网上找不到任何地方如何找到第一个键/值作为单独的哈希表。
我认为hash[0] 只会尝试查找名称为 0 的元素,当我运行代码时它只会返回nil。
我知道我可以找到键名和值,然后从它们创建一个新的哈希,但我想知道是否有更简单的方法可以做到这一点,所以我马上得到一个哈希。
这是我的代码:
def rps_game_winner(game)
rock_in_hash = game.invert['R']
paper_in_hash = game.invert['P']
scissors_in_hash = game.invert['S']
if(rock_in_hash)
if(paper_in_hash)
return paper_in_hash;
elsif(scissors_in_hash)
return rock_in_hash
end
elsif(paper_in_hash)
if(rock_in_hash)
return paper_in_hash
elsif(scissors_in_hash)
return scissors_in_hash
end
end
key = game.keys[-1]
value = game.values[-1]
winner = {key => value}
return winner
end
game_one = { "Bob" => 'P', "Jim" => 'P' }
puts rps_game_winner(game_one)
这让我得到了正确的结果问题是我不明白为什么它是 -1 而不是零...... 我希望有一种更好的方法来获取哈希表的第一个键/值对,而不是使用从上一个表中检索到的键和值创建新的哈希表。
【问题讨论】: