0

在 Ruby 中,如果我们调用了一个散列my_hash并且我们决定puts了键和值,我们似乎可以使用:

my_hash.each do |key, value|
  puts key, my_hash[key]
end

或者

my_hash.each do |key, value|
  puts key, value
end

我的问题是为什么my_hash[key]返回值?与 just 相比,使用它有什么优势(如果有的话)value

4

2 回答 2

1

没有优势。

如果您的密钥不是:symbol.

这是因为迭代器已经完成了查找并将值分配给value变量。如果你再次查找它,你正在重做这项工作。带有键符号的散列将进行O(1)查找,但其他键类型可能会出现更多时间。

于 2013-10-23T15:34:53.477 回答
0

如果您正在寻找某些东西,您可以使用钥匙来获取它。钥匙的概念意味着您“已经拥有钥匙”。那么,当你已经得到它时,为什么还要给一个 Hash 一些你拥有的东西,并期望得到同样的东西。哈希只会看着你,想知道这个愚蠢的人在做什么。

钥匙的目的是为另一边打开一扇门……这就是为什么钥匙打开了门 Hash 之外的价值。

这就像书店的索引。你可以通过它的索引找到这本书。索引是关键,书是价值。

于 2014-06-09T23:20:13.327 回答