1. NilClass

1.1 語法

其他程式語言中的空值(Null)在Ruby使用nil來表示:

value = nil
p value # nil

1.2 判斷

Ruby中的物件都只和自己相等,所以即使是和false和0也和nil不相等,如下結果

puts nil == nil   # true
puts nil == false # false
puts nil == 0     # false

另外Object提供一個內建函數nil?用來判斷物件是否為nil,只有nil會回傳true

puts nil.nil?   # true
puts false.nil? # false
puts 0.nil?     # false

1.3 轉型

由於Ruby所有東西都是物件,包含nil,所以和其它語言不同之處,它可以進行其他操作,例如呼叫轉型的函式:

p nil.to_s # ""
p nil.to_i # 0
p nil.to_a # []
p nil.to_h # {}, Ruby 2.0 之前會出錯

2. TrueClass和FalseClass

2.1 語法

使用truefalse來表示:

value = true
p value # true

value = false
p value # false

2.2 判斷

一樣只和自己相等,以true為例:

value = "true"
if value == true
  puts "if value == true" # 不執行
end
if value
  puts "if value"         # if value
end

2.3 轉型

只能轉成字串:

p true.to_s  # "true"
p false.to_s # "false"
相关文章