zoukankan      html  css  js  c++  java
  • Rails中nil? empty? blank? present?的区别

    .nil?

    • Ruby方法

    • .nil?方法被放置在Object类中,可以被任何对象调用,如果是nil则返回true

    • 在Rails中只有nil对象才会返回true

    nil.nil? #=> true
    anthing_else.nil? #=> false
    a = nil
    a.nil? #=> true
    "".nil #=> true

    .empty?

    • Ruby方法

    • 如果对集合之外的对象调用.empty?方法,则会抛出NoMethodError

    • 可以在字符串、数组、hash这几种集合中使用,且只有当集合长度(length)为0时才会返回true

    "".empty = true
    " ".empty? = false

    .blank?

    • Rails方法

    • .empty?的区别: 对于还有空格的字符串也会返回true,并且nil返回的结果也未true

    • 可以在任意对象上调用,不限制于集合对象

    nil.blank? = true
    [].blank? = true
    {}.blank? = true
    "".blank? = true
    5.blank? == false

    .present?

    • Rails方法

    • 如果一个对象不是blank,即会返回true

    • 内部实现其实是调用的·blank?,如下代码:

    # File activesupport/lib/active_support/core_ext/object/blank.rb, line 22
      def present?
        !blank?
      ends

     

  • 相关阅读:
    R的卸载和更新安装
    Holt-Winters原理和初始值的确定
    使用excel结合线性规划求解Holt-Winters参数
    Java_Number(装箱和拆箱)
    Java_运算符
    Java_Character类
    Java_String&StringBuilder&StringBuffer类
    Java_数组
    Java_修饰符
    Java_变量类型
  • 原文地址:https://www.cnblogs.com/gdpdroid/p/6674478.html
Copyright © 2011-2022 走看看