Class: NilClass
| Relationships & Source Files | |
| Inherits: | Object | 
| Defined in: | object.c, complex.c, nilclass.rb, object.c, rational.c | 
Overview
The class of the singleton object nil.
Several of its methods act as operators:
Others act as converters, carrying the concept of nullity to other classes:
While nil doesn’t have an explicitly defined #to_hash method, it can be used in ** unpacking, not adding any keyword arguments.
Another method provides inspection:
Finally, there is this query method:
Instance Attribute Summary
- 
    
      #nil?  ⇒ Boolean 
    
    readonly
    Returns true.
Instance Method Summary
- 
    
      #&(object)  ⇒ false 
    
    Returns false:
- #===
- 
    
      #=~(object)  ⇒ nil 
    
    Returns nil.
- #^
- 
    
      #inspect  ⇒ 'nil' 
    
    Returns string 'nil':
- 
    
      #rationalize(eps = nil)  ⇒ 1 
    
    Returns zero as a ::Rational:
- 
    
      #to_a  ⇒ Array 
    
    Returns an empty ::Array.
- 
    
      #to_c  ⇒ (0+0i) 
    
    Returns zero as a ::Complex:
- 
    
      #to_f  ⇒ 0.0 
    
    Always returns zero. 
- 
    
      #to_h  ⇒ {} 
    
    Returns an empty ::Hash.
- 
    
      #to_i  ⇒ 0 
    
    Always returns zero. 
- 
    
      #to_r  ⇒ 1 
    
    Returns zero as a ::Rational:
- 
    
      #to_s  ⇒ '' 
    
    Returns an empty ::String:
- #|
Instance Attribute Details
    #nil?  ⇒ Boolean  (readonly)  
Returns true. For all other objects, method nil? returns false.
# File 'object.c', line 1646
static VALUE
rb_true(VALUE obj)
{
    return Qtrue;
}
  Instance Method Details
    
      #&(object)  ⇒ false 
      #&(object)  ⇒ false 
    
  
false 
      #&(object)  ⇒ false 
    # File 'object.c', line 1601
static VALUE
false_and(VALUE obj, VALUE obj2)
{
    return Qfalse;
}
  #===
[ GitHub ]
    #=~(object)  ⇒ nil   
Returns nil.
This method makes it useful to write:
while gets =~ /re/
  # ...
end# File 'object.c', line 1456
static VALUE
nil_match(VALUE obj1, VALUE obj2)
{
    return Qnil;
}
  #^
[ GitHub ]
    #inspect  ⇒ 'nil'   
Returns string 'nil':
nil.inspect # => "nil"# File 'object.c', line 1436
static VALUE
nil_inspect(VALUE obj)
{
    return rb_usascii_str_new2("nil");
}
  
    #rationalize(eps = nil)  ⇒ 1   
# File 'rational.c', line 2136
static VALUE
nilclass_rationalize(int argc, VALUE *argv, VALUE self)
{
    rb_check_arity(argc, 0, 1);
    return nilclass_to_r(self);
}
  #to_a ⇒ Array
Returns an empty ::Array.
nil.to_a # => []# File 'object.c', line 1402
static VALUE
nil_to_a(VALUE obj)
{
    return rb_ary_new2(0);
}
  
    #to_c  ⇒ (0+0i)   
Returns zero as a ::Complex:
nil.to_c # => (0+0i)# File 'complex.c', line 1936
static VALUE
nilclass_to_c(VALUE self)
{
    return rb_complex_new1(INT2FIX(0));
}
  
    #to_f  ⇒ 0.0   
Always returns zero.
nil.to_f   #=> 0.0# File 'nilclass.rb', line 22
def to_f return 0.0 end
#to_h ⇒ {}
Returns an empty ::Hash.
nil.to_h   #=> {}# File 'object.c', line 1420
static VALUE
nil_to_h(VALUE obj)
{
    return rb_hash_new();
}
  
    #to_i  ⇒ 0   
Always returns zero.
nil.to_i   #=> 0# File 'nilclass.rb', line 10
def to_i return 0 end
    #to_r  ⇒ 1   
Returns zero as a ::Rational:
nil.to_r # => (0/1)# File 'rational.c', line 2119
static VALUE
nilclass_to_r(VALUE self)
{
    return rb_rational_new1(INT2FIX(0));
}
  #to_s ⇒ ''
Returns an empty ::String:
nil.to_s # => ""# File 'object.c', line 1384
VALUE
rb_nil_to_s(VALUE obj)
{
    return rb_cNilClass_to_s;
}