NilClass

語法

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

1
2
value = nil
p value # nil

判斷

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

1
2
3
puts nil == nil   # true
puts nil == false # false
puts nil == 0 # false

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

1
2
3
puts nil.nil?   # true
puts false.nil? # false
puts 0.nil? # false

轉型

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

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

TrueClass 和 FalseClass

語法

使用 truefalse 來表示:

1
2
3
4
5
value = true
p value # true

value = false
p value # false

判斷

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

1
2
3
4
5
6
7
value = "true"
if value == true
puts "if value == true" # 不執行
end
if value
puts "if value" # if value
end

轉型

只能轉成字串:

1
2
p true.to_s  # "true"
p false.to_s # "false"

延伸閱讀

上一篇 Ruby 教學 - 資料型態 (Data Type)
下一篇 Ruby 教學 - 數字 (Numeric)