美文网首页
nil? , .empty? .blank? .present?

nil? , .empty? .blank? .present?

作者: 程序萌 | 来源:发表于2017-05-15 14:28 被阅读0次

    .nil? 和 .empty? 是ruby的方法。 .blank? 是rails的方法。
    .nil? 判断对象是否存在(nil)。不存在的对象都是nil的。
    .empty? 对象已经存在,判断是否为空字段,比如一个字符串是否为空串,或者一个数组中是否有值
    .blank? 相当于同时满足 .nil? 和 .empty? 。railsAPI中的解释是如果对象是:false, empty, 空白字符. 比如说: "", " ", nil , [], 和{}都算是blank。 (object.blank? 相当于 object.nil?||object.empty?)。
    present?方法就是blank?方法的相反,判断是否存在,因此present?方法与!blank?方法两者表达的意思是一样的。

    例:.nil?
    nil.nil?       => true
    false.nil?     => false
    1.nil?         => false
    0.nil?         => false
    "".nil?        => false
    [].nil?        => false
    
    例:.empty?
    "".empty?          => true
    "abc".empty?       => false
    [].empty?          => true
    [1, 2, 3].empty?   => false
    1.empty?           => NoMethodError  #说明 empty? 方法不能用于整数
    
    例:.blank?
    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
    
    例:.present?
    nil.present?       => false
    [].present?        => false
    "hello".present?   => true
    ["a"].present?     => true
    

    相关文章

      网友评论

          本文标题:nil? , .empty? .blank? .present?

          本文链接:https://www.haomeiwen.com/subject/ujrhxxtx.html