ruby在迭代中打印哈希值

时间:2016-05-13 04:30:09

标签: ruby

这种情况正在发生,对我来说似乎很奇怪。

以下代码只打印空行:

matz = { "First name" => "Yukihiro",
         "Last name" => "Matsumoto",
         "Age" => 47,
         "Nationality" => "Japanese",
         "Nickname" => "Matz"
}

matz.each do |k|
  puts  matz[k]
end

如果我将其更改为

matz.each do |k|
  puts k
  puts  matz[k]
end

作品

matz.each do |k,v|
  puts  matz[k]
end

作品

任何人都有任何解释

1 个答案:

答案 0 :(得分:4)

在:

matz.each do |k|
  puts  matz[k]
end

每个k都是一个表示键值对的数组,例如["First name", "Yukihiro"]。由于这些对中没有一个是哈希matz的关键,puts matz[k]puts nil相同。