【发布时间】:2012-11-28 16:31:46
【问题描述】:
我正在通过Ruby tutorial,得知代码
puts 'start'
puts
puts 'end'
会输出三行,但是下面的代码
puts 'start'
puts []
puts 'end'
只会输出两个。声明的原因是 [] 不是一个对象 (编辑:“不指向任何东西”),所以puts 不能用它做任何事情,但为什么不是第一种情况是真的吗?
我试图找到一个关于puts 的官方页面来解决这个问题,而this one 没有任何帮助。
【问题讨论】:
-
那是错误的。
[]是一个对象。 -
[]在您将其用作some_method[]时不是对象(方法和[] 之间没有空格)。但是在您的情况下,它显然是一个对象 -
@sawa,我的意思是
[]和[]=方法 -
@slivu
[]内puts []不能是方法。我的理解是[]需要一个明确的接收者。 -
@sawa,当然,似乎 OP 对
[]何时用作对象以及何时用作方法感到困惑。