ruby -- 基礎學習(五)empty、nil、blank三者之間的區別


這三個方法在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


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM