Puts nil


#1

puts nil outputs “nil”. Shouldn’t it output “” (ie, nothing), which
is nil.to_s?

RDoc (for IO#print, referenced by #puts):
Objects that aren’t strings will be converted by calling their to_s
method


#2

On 2007-02-22, S. Robert J. removed_email_address@domain.invalid wrote:

puts nil outputs “nil”. Shouldn’t it output “” (ie, nothing), which
is nil.to_s?

The source code specifically checks for the nil object and outputs
“nil” instead of nil.to_s . It’s clearly a deliberate decision by the
developers to make nil a special case. The docs don’t mention it, and
I agree that they should.

Regards,

Jeremy H.