为什么"puts"会返回一个空行,而不是"puts []"?

Zac*_*ach 2 ruby arrays io puts

我正在阅读Ruby教程,并了解了代码

puts 'start'
puts
puts 'end'
Run Code Online (Sandbox Code Playgroud)

将输出三行,但代码如下

puts 'start'
puts []
puts 'end'
Run Code Online (Sandbox Code Playgroud)

只会输出两个.陈述的原因是[] 不是一个对象(编辑:"不指向任何东西"),所以puts不能对它做任何事情,但为什么在第一种情况下也不是这样呢?

我试图找到一个关于puts解决这个问题的官方网页,这个没有帮助.

Ser*_*sev 8

陈述的原因是[]不是一个对象

说明在哪里?

puts对数组有一个特殊的处理.当您传递一个数组时,它会在新行上打印每个元素.你传递一个零元素的数组,它打印零行.