Class: NilClass
| Relationships & Source Files | |
| Inherits: | Object | 
| Defined in: | object.c, complex.c, object.c, rational.c | 
Overview
The class of the singleton object nil.
Instance Attribute Summary
- 
    
      #nil?  ⇒ Boolean 
    
    readonly
    Only the object nil responds truetonil?.
Instance Method Summary
- 
    
      #&(obj)  ⇒ false 
    
    And—Returns false.
- 
    
      #===(other)  ⇒ Boolean 
    
    Alias for Object#===. 
- 
    
      #=~(other)  ⇒ nil 
    
    Dummy pattern matching – always returns nil. 
- 
    
      #^(obj)  ⇒ Boolean 
    
    Exclusive Or—If obj is nilorfalse, returnsfalse; otherwise, returnstrue.
- 
    
      #inspect  ⇒ "nil" 
    
    Always returns the string “nil”. 
- 
    
      #rationalize([eps])  ⇒ 1 
    
    Returns zero as a rational. 
- 
    
      #to_a  ⇒ Array 
    
    Always returns an empty array. 
- 
    
      #to_c  ⇒ (0+0i) 
    
    Returns zero as a complex. 
- 
    
      #to_f  ⇒ 0.0 
    
    Always returns zero. 
- 
    
      #to_h  ⇒ {} 
    
    Always returns an empty hash. 
- 
    
      #to_i  ⇒ 0 
    
    Always returns zero. 
- 
    
      #to_r  ⇒ 1 
    
    Returns zero as a rational. 
- 
    
      #to_s  ⇒ "" 
    
    Always returns the empty string. 
- 
    
      #|(obj)  ⇒ Boolean 
    
    Or—Returns falseif obj isnilorfalse;trueotherwise.
Instance Attribute Details
    #nil?  ⇒ Boolean  (readonly)  
Only the object nil responds true to nil?.
# File 'object.c', line 1590
static VALUE
rb_true(VALUE obj)
{
    return Qtrue;
}
  Instance Method Details
    
      #&(obj)  ⇒ false 
      #&(obj)  ⇒ false 
    
  
false 
      #&(obj)  ⇒ false 
    And—Returns false. obj is always evaluated as it is the argument to a method call—there is no short-circuit evaluation in this case.
# File 'object.c', line 1542
static VALUE
false_and(VALUE obj, VALUE obj2)
{
    return Qfalse;
}
  
    #===(other)  ⇒ Boolean   
Alias for Object#===.
    #=~(other)  ⇒ nil   
Dummy pattern matching – always returns nil.
# File 'object.c', line 1426
static VALUE
nil_match(VALUE obj1, VALUE obj2)
{
    return Qnil;
}
  
    
      #^(obj)  ⇒ Boolean 
      #^(obj)  ⇒ Boolean 
    
  
Boolean 
      #^(obj)  ⇒ Boolean 
    Exclusive Or—If obj is nil or false, returns false; otherwise, returns true.
# File 'object.c', line 1577
static VALUE
false_xor(VALUE obj, VALUE obj2)
{
    return RTEST(obj2)?Qtrue:Qfalse;
}
  
    #inspect  ⇒ "nil"   
Always returns the string “nil”.
# File 'object.c', line 1413
static VALUE
nil_inspect(VALUE obj)
{
    return rb_usascii_str_new2("nil");
}
  
    #rationalize([eps])  ⇒ 1   
Returns zero as a rational.  The optional argument eps is always ignored.
# File 'rational.c', line 2148
static VALUE
nilclass_rationalize(int argc, VALUE *argv, VALUE self)
{
    rb_check_arity(argc, 0, 1);
    return nilclass_to_r(self);
}
  #to_a ⇒ Array
Always returns an empty array.
nil.to_a   #=> []# File 'object.c', line 1383
static VALUE
nil_to_a(VALUE obj)
{
    return rb_ary_new2(0);
}
  
    #to_c  ⇒ (0+0i)   
Returns zero as a complex.
# File 'complex.c', line 1685
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 'object.c', line 1353
static VALUE
nil_to_f(VALUE obj)
{
    return DBL2NUM(0.0);
}
  #to_h ⇒ {}
Always returns an empty hash.
nil.to_h   #=> {}# File 'object.c', line 1400
static VALUE
nil_to_h(VALUE obj)
{
    return rb_hash_new();
}
  
    #to_i  ⇒ 0   
Always returns zero.
nil.to_i   #=> 0# File 'object.c', line 1338
static VALUE
nil_to_i(VALUE obj)
{
    return INT2FIX(0);
}
  
    #to_r  ⇒ 1   
Returns zero as a rational.
# File 'rational.c', line 2135
static VALUE
nilclass_to_r(VALUE self)
{
    return rb_rational_new1(INT2FIX(0));
}
  #to_s ⇒ ""
Always returns the empty string.
# File 'object.c', line 1366
static VALUE
nil_to_s(VALUE obj)
{
    return rb_cNilClass_to_s;
}
  
    
      #|(obj)  ⇒ Boolean 
      #|(obj)  ⇒ Boolean 
    
  
Boolean 
      #|(obj)  ⇒ Boolean 
    Or—Returns false if obj is nil or false; true otherwise.
# File 'object.c', line 1558
static VALUE
false_or(VALUE obj, VALUE obj2)
{
    return RTEST(obj2)?Qtrue:Qfalse;
}