这三个方法在ROR中经常用到,都是用来判断是否为空的。
区别是:
ruby的方法:.nil?、.empty?
rails的方法 :.blank?
用法的区别:
.nil? : 判断对象是否存在。
.empty? : 是对象已经存在,判断是否为空字段。
.blank? : 相当于同时满足 .nil? 和 .empty? 。
注: Rails API中的解释是如果对象是:false, empty, 空白字符都是blank。
比如说: “”, ” “, nil, [], 和{}都算是blank。
也就是说,object.blank? 相当于 object.nil? || object.empty?
.nil? 和 empty? 的简单例子
1 nil.nil? 2 => true 3 4 false.nil? 5 => false 6 7 1.nil? 8 => false 9 10 0.nil? 11 => false 12 13 "".nil? 14 => false 15 16 [].nil? 17 => false 18 19 "".empty? 20 => true 21 22 "abc".empty? 23 => false 24 25 [].empty? 26 => true 27 28 [1, 2, 3].empty? 29 => false
注 : .empty?不能用于整数
1 1.empty? 2 => NoMethodError #说明 empty? 方法不能用于整数
.blank?的简单例子
1 true.blank? 2 => false 3 4 false.blank? 5 => true 6 7 "true".blank? 8 => false 9 10 "".blank? 11 => true 12 13 " ".blank? 14 => true 15 16 ' '.blank? 17 => false 18 19 'true'.blank? 20 => false 21 22 ''.blank? 23 => true 24 25 1.blank? 26 => false 27 28 [].blank? 29 => true 30 31 [1].blank? 32 => true
原文链接 : http://www.cnblogs.com/zhualike/archive/2009/11/27/1612215.html