这三个方法在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? 的简单例子
nil.nil?
=> true
false.nil?
=> false
1.nil?
=> false
0.nil?
=> false
"".nil?
=> false
[].nil?
=> false
"".empty?
=> true
"abc".empty?
=> false
[].empty?
=> true
[1, 2, 3].empty?
=> false
注 : .empty?不能用于整数
1.empty?
=> NoMethodError #说明 empty? 方法不能用于整数
.blank?的简单例子
true.blank?
=> false
false.blank?
=> true
"true".blank?
=> false
"".blank?
=> true
"\n".blank?
=> true
'\n'.blank?
=> false
'true'.blank?
=> false
''.blank?
=> true
1.blank?
=> false
[].blank?
=> true
[1].blank?
=> true
FROM :http://www.cnblogs.com/zhualike/archive/2009/11/27/1612215.html