class NilClass
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:
Another method provides inspection:
Finally, there is this query method:
Public Instance Methods
false & object → false
nil & object → false
Returns false
:
false & true # => false false & Object.new # => false
Argument object
is evaluated:
false & raise # Raises RuntimeError.
static VALUE false_and(VALUE obj, VALUE obj2) { return Qfalse; }
true === other → true or false
false === other → true or false
nil === other → true or false
nil =~ object → nil
Returns nil
.
This method makes it useful to write:
while gets =~ /re/ # ... end
static VALUE nil_match(VALUE obj1, VALUE obj2) { return Qnil; }
false ^ object → true or false
nil ^ object → true or false
Returns false
if object
is nil
or false
, true
otherwise:
nil ^ nil # => false nil ^ false # => false nil ^ Object.new # => true
#define false_xor true_and
inspect → 'nil'
Returns string 'nil'
:
nil.inspect # => "nil"
static VALUE nil_inspect(VALUE obj) { return rb_usascii_str_new2("nil"); }
nil? → true
Returns true
. For all other objects, method nil?
returns false
.
static VALUE rb_true(VALUE obj) { return Qtrue; }
rationalize(eps = nil) → (0/1)
Returns zero as a Rational:
nil.rationalize # => (0/1)
Argument eps
is ignored.
static VALUE nilclass_rationalize(int argc, VALUE *argv, VALUE self) { rb_check_arity(argc, 0, 1); return nilclass_to_r(self); }
to_a → []
Returns an empty Array
.
nil.to_a # => []
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)
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 → {}
to_i → 0
Always returns zero.
nil.to_i #=> 0
# File nilclass.rb, line 10 def to_i return 0 end
to_r → (0/1)
Returns zero as a Rational:
nil.to_r # => (0/1)
static VALUE nilclass_to_r(VALUE self) { return rb_rational_new1(INT2FIX(0)); }
to_s → ''
Returns an empty String:
nil.to_s # => ""
VALUE rb_nil_to_s(VALUE obj) { return rb_cNilClass_to_s; }
false | object → true or false
nil | object → true or false
Returns false
if object
is nil
or false
, true
otherwise:
nil | nil # => false nil | false # => false nil | Object.new # => true
#define false_or true_and