У меня есть вложенный массив:
array_name = [
["Alice", "pizza", "soccer"],
["Steve", "sushi", "hockey"],
["Alex", "pasta", "none"]
]
Когда я использую inspect
в цикле:
array_name.each do |i|
puts i.inspect
end
выводит:
["Alice", "pizza", "soccer"]
["Steve", "sushi", "hockey"]
["Alex", "pasta", "none"]
, но с использованием puts
вместо этого печатает каждый элемент из каждого отдельного массива:
array_name.each do |i|
puts i
end
выходы:
Alice
pizza
soccer
Steve
sushi
hockey
Alex
pasta
none
Почему array_name.inspect
выводит весь массив, как указано выше?
Я прочитал, что inspect
пытается распечатать закодированную версию. Я не понимаю, почему следующее показывает тот же вывод, что и второй код выше:
array_name.each do |i|
i.each do |sub_i|
puts sub_i
end
end
выходы: * * тысяча двадцать-пять
Alice
pizza
soccer
Steve
sushi
hockey
Alex
pasta
none
Второй и третий коды, приведенные выше, дают мне одинаковый вывод, который представляет собой не массив, а фактические элементы внутри каждого массива. Почему это?