True, False, and Nil

We saw in Keywords that true, false, and nil are keywords in Ruby. true and false are the two Boolean values, and they represent truth and falsehood, yes and no, on and off. nil is a special value reserved to indicate the absence of value.

Each of these keywords evaluates to a special object. true evaluates to an object that is a singleton instance of TrueClass. Likewise, false and nil are singleton instances of FalseClass and NilClass. Note that there is no Boolean class in Ruby. TrueClass and FalseClass both have Object as their superclass.

If you want to check whether a value is nil, you can simply compare it to nil, or use the method nil?:

o == nil   # Is o nil?
o.nil?     # Another way to test

Note that true, false, and nil refer to objects, not numbers. false and nil are not the same thing as 0, and true is not the same thing as 1. When Ruby requires a Boolean value, nil behaves like false, and any value other than nil or false behaves like true.

Get The Ruby Programming Language now with the O’Reilly learning platform.

O’Reilly members experience books, live events, courses curated by job role, and more from O’Reilly and nearly 200 top publishers.