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.