The global value false
is the only instance of class
FalseClass
and represents a logically false value in boolean
expressions. The class provides operators allowing false
to
participate correctly in logical expressions.
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.
static VALUE false_and(VALUE obj, VALUE obj2) { return Qfalse; }
Case Equality – For class Object, effectively the
same as calling #==
, but typically overridden by descendants
to provide meaningful semantics in case
statements.
VALUE rb_equal(VALUE obj1, VALUE obj2) { VALUE result; if (obj1 == obj2) return Qtrue; result = rb_equal_opt(obj1, obj2); if (result == Qundef) { result = rb_funcall(obj1, id_eq, 1, obj2); } if (RTEST(result)) return Qtrue; return Qfalse; }
Exclusive Or—If obj is nil
or false
,
returns false
; otherwise, returns true
.
static VALUE false_xor(VALUE obj, VALUE obj2) { return RTEST(obj2)?Qtrue:Qfalse; }