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"
相关文章