這三個方法在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 "\n".blank? 14 => true 15 16 '\n'.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