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