класс NilClass
Класс единственного объекта nil.
Публичные методы экземпляров
static VALUE
false_and(VALUE obj, VALUE obj2)
{
return Qfalse;
} И—Возвращает false. obj всегда вычисляется, поскольку он является аргументом вызова метода — в этом случае нет короткой проверки.
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;
} Равенство по классу — Для класса Объект, фактически то же самое, что вызов #==, но обычно переопределяется потомками, чтобы обеспечить осмысленную семантику в операциях case.
static VALUE
false_xor(VALUE obj, VALUE obj2)
{
return RTEST(obj2)?Qtrue:Qfalse;
} Исключающее ИЛИ — Если obj равен nil или false, возвращает false; в противном случае возвращает true.
static VALUE
nil_inspect(VALUE obj)
{
return rb_usascii_str_new2("nil");
} Всегда возвращает строку «nil».
static VALUE
rb_true(VALUE obj)
{
return Qtrue;
} Только объект nil отвечает true на nil?.
static VALUE
nilclass_rationalize(int argc, VALUE *argv, VALUE self)
{
rb_scan_args(argc, argv, "01", NULL);
return nilclass_to_r(self);
} Возвращает ноль как рациональное число. Необязательный аргумент eps всегда игнорируется.
static VALUE
nil_to_a(VALUE obj)
{
return rb_ary_new2(0);
} Всегда возвращает пустой массив.
nil.to_a #=> []
static VALUE
nilclass_to_c(VALUE self)
{
return rb_complex_new1(INT2FIX(0));
} Возвращает ноль как комплексное число.
static VALUE
nil_to_f(VALUE obj)
{
return DBL2NUM(0.0);
} Всегда возвращает ноль.
nil.to_f #=> 0.0
static VALUE
nil_to_h(VALUE obj)
{
return rb_hash_new();
} Всегда возвращает пустой хэш.
nil.to_h #=> {}
static VALUE
nil_to_i(VALUE obj)
{
return INT2FIX(0);
} Всегда возвращает ноль.
nil.to_i #=> 0
static VALUE
nilclass_to_r(VALUE self)
{
return rb_rational_new1(INT2FIX(0));
} Возвращает ноль как рациональное число.
static VALUE
nil_to_s(VALUE obj)
{
return rb_usascii_str_new(0, 0);
} Всегда возвращает пустую строку.
static VALUE
false_or(VALUE obj, VALUE obj2)
{
return RTEST(obj2)?Qtrue:Qfalse;
} Или — Возвращает false если obj равен nil или false; true в противном случае.
Ruby Core © 1993–2017 Yukihiro Matsumoto
Licensed under the Ruby License.
Ruby Standard Library © contributors
Licensed under their own licenses.