小编Sky*_*Bay的帖子

为什么'inspect'打印数组但不使用'inspect'放置每个元素?

我有一个嵌套数组:

array_name = [
  ["Alice", "pizza", "soccer"],
  ["Steve", "sushi", "hockey"],
  ["Alex", "pasta", "none"]
]
Run Code Online (Sandbox Code Playgroud)

当我inspect在循环中使用时:

array_name.each do |i|
  puts i.inspect
end
Run Code Online (Sandbox Code Playgroud)

它输出:

["Alice", "pizza", "soccer"]
["Steve", "sushi", "hockey"]
["Alex", "pasta", "none"]
Run Code Online (Sandbox Code Playgroud)

但是使用puts而是打印每个单独数组中的每个元素:

array_name.each do |i|
  puts i
end
Run Code Online (Sandbox Code Playgroud)

输出:

Alice
pizza
soccer
Steve
sushi
hockey
Alex
pasta
none
Run Code Online (Sandbox Code Playgroud)

为什么array_name.inspect像上面一样输出整个数组?

我读过,inspect试图打印编码版本.那么,我不知道为什么以下显示与上面第二个代码相同的输出:

array_name.each do |i|
  i.each do |sub_i|
    puts sub_i
  end
end
Run Code Online (Sandbox Code Playgroud)

输出:

Alice
pizza
soccer
Steve
sushi
hockey
Alex
pasta
none
Run Code Online (Sandbox Code Playgroud)

上面的第二个和第三个代码给出了相同的输出,它不是数组,而是每个数组中的实际元素.为什么是这样?

ruby arrays multidimensional-array

3
推荐指数
1
解决办法
52
查看次数

标签 统计

arrays ×1

multidimensional-array ×1

ruby ×1