我在Ruby中迭代了一堆嵌套的哈希:
@data.each do |key, value|
puts "Key: #{key}"
puts "Value: #{value}"
end
输出:
Key: 1.0
Value: {"label"=>"Default Label"}
{"1.0"=>{"label"=>"Default Label"}}
现在我真的不明白为什么打印最后一行。当我删除两个" puts"它甚至会打印出来。来自循环的调用。 我试图在网上找到一些关于这种行为但却无法找到的东西。 我可以用任何方式防止这种情况发生吗?或者我误解了每个"每个"打电话给哈希?
答案 0 :(得分:7)
你在REPL中这样做。
默认情况下,REPL返回(并打印)最后执行的语句的值。
在这种情况下,它是each
,它会返回它迭代的集合,因此您可以看到原始哈希。