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.