在 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
?
没有优势。
如果您的密钥不是:symbol
.
这是因为迭代器已经完成了查找并将值分配给value
变量。如果你再次查找它,你正在重做这项工作。带有键符号的散列将进行O(1)
查找,但其他键类型可能会出现更多时间。
如果您正在寻找某些东西,您可以使用钥匙来获取它。钥匙的概念意味着您“已经拥有钥匙”。那么,当你已经得到它时,为什么还要给一个 Hash 一些你拥有的东西,并期望得到同样的东西。哈希只会看着你,想知道这个愚蠢的人在做什么。
钥匙的目的是为另一边打开一扇门……这就是为什么钥匙打开了门 Hash 之外的价值。
这就像书店的索引。你可以通过它的索引找到这本书。索引是关键,书是价值。