欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页

.nil? , .empty?, .blank? .present? 的区别

程序员文章站 2022-07-16 08:59:13
...

首先这三个都是判空的。 而 .nil? 和 .empty? 是ruby的方法。 .blank? 是rails的方法

.nil?       判断对象是否存在(nil)。不存在的对象都是nil的

.empty?  对象已经存在,判断是否为空字段,比如一个字符串是否为空串,或者一个数组中是否有值。有点像判断长度是否为零,呵呵

.blank?   相当于同时满足 .nil? 和 .empty? 。railsAPI中的解释是如果对象是:false, empty, 空白字符. 比如说: "", " ", nil , [], 和{}都算是blank。   (object.blank? 相当于 object.nil?||object.empty?)

 

.present ? (The opposite of Rails blank? is present?) .nil? , .empty?, .blank? .present? 的区别
            
    
    博客分类: ruby RailsRuby 

 

下面是一些例子:

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

1.empty?
=> NoMethodError    #说明 empty? 方法不能用于整数

  p true.blank?       FALSE
    p false.blank?      TRUE
    p "true".blank?    FALSE
    p "".blank?          TRUE
    p "\n".blank?       TRUE
    p '\n'.blank?        FALSE
    p 'true'.blank?     FALSE
    p ''.blank?           TRUE
    p 1.blank?           FALSE
    p [].blank?          TRUE
    p [1].blank?        FALSE

相关标签: Rails Ruby