.nil? 判断对象是否存在(nil)。不存在的对象都是nil的
.empty? 对象已经存在,判断是否为空字段,比如一个字符串是否为空串,或者一个数组中是否有值。类似于判断length是否是0
.blank? 可以这样理解:.blank?=(.empty?||.nil?)。如果对象是:false, empty, "", " ", nil, [], 和{}都算是blank。
除了 false 本身之外,所有的 Ruby 对象中nil是唯一一个布尔值为“假”的。基本上所有其他的 Ruby 对象都是“真”的,包括 0
>> "".nil? => false >> nil.nil? => true
>> "foo".nil? => false >> "".nil? => false >> nil.nil? => true
因为 Ruby 中的一切都是对象,那么 nil 也是对象,所以它也可以响应方法
>> nil.to_s => ""
nil 对象本身无法响应 empty? 方法,但是 nil.to_s 可以
>> nil.empty? NoMethodError: You have a nil object when you didn\'t expect it! You might have expected an instance of Array. The error occurred while evaluating nil.empty? >> nil.to_s.empty? => true >> " ".empty? => false
注意一点:empty?不能用于整数