類別 NilClass
單例物件 nil
的類別。
其中有幾個方法會作為運算子
-
#&
-
#|
-
#=~
-
#^
其他方法會作為轉換器,將 nullity 的概念傳遞到其他類別
另一個方法提供檢查
最後,還有這個查詢方法
公開實例方法
false & object → false 按一下以切換來源
nil & object → false
傳回 false
false & true # => false false & Object.new # => false
會評估參數 object
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 按一下以切換來源
傳回 nil
。
這個方法讓撰寫以下程式碼變得很有用
while gets =~ /re/ # ... end
static VALUE nil_match(VALUE obj1, VALUE obj2) { return Qnil; }
false ^ object → true or false 按一下以切換來源
nil ^ object → true or false
如果 object
是 nil
或 false
,傳回 false
,否則傳回 true
nil ^ nil # => false nil ^ false # => false nil ^ Object.new # => true
#define false_xor true_and
inspect → 'nil' 按一下以切換來源
傳回字串 'nil'
nil.inspect # => "nil"
static VALUE nil_inspect(VALUE obj) { return rb_usascii_str_new2("nil"); }
nil? → true 按一下以切換來源
傳回 true
。對於所有其他物件,方法 nil?
會傳回 false
。
static VALUE rb_true(VALUE obj) { return Qtrue; }
rationalize(eps = nil) → (0/1) 按一下以切換來源
傳回零,表示為有理數
nil.rationalize # => (0/1)
會忽略參數 eps
。
static VALUE nilclass_rationalize(int argc, VALUE *argv, VALUE self) { rb_check_arity(argc, 0, 1); return nilclass_to_r(self); }
to_a → [] 按一下以切換原始碼
to_c → (0+0i) 按一下以切換原始碼
傳回零作為複數
nil.to_c # => (0+0i)
static VALUE nilclass_to_c(VALUE self) { return rb_complex_new1(INT2FIX(0)); }
to_f → 0.0 按一下以切換原始碼
總是傳回零。
nil.to_f #=> 0.0
# File ruby_3_3_0/nilclass.rb, line 22 def to_f return 0.0 end
to_h → {} 按一下以切換原始碼
to_i → 0 按一下以切換原始碼
總是傳回零。
nil.to_i #=> 0
# File ruby_3_3_0/nilclass.rb, line 10 def to_i return 0 end
to_r → (0/1) 按一下以切換原始碼
傳回零,表示為有理數
nil.to_r # => (0/1)
static VALUE nilclass_to_r(VALUE self) { return rb_rational_new1(INT2FIX(0)); }
to_s → '' 按一下以切換原始碼
傳回一個空的字串
nil.to_s # => ""
VALUE rb_nil_to_s(VALUE obj) { return rb_cNilClass_to_s; }
false | object → true 或 false 按一下以切換原始碼
nil | object → true 或 false
如果 object
是 nil
或 false
,傳回 false
,否則傳回 true
nil | nil # => false nil | false # => false nil | Object.new # => true
#define false_or true_and