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
.
3.148.103.210