Puts nil

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

On 2007-02-22, S. Robert J. [email protected] 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.