zoukankan      html  css  js  c++  java
  • ruby中nil?, empty? and blank?

    In Ruby, you check with nil? if an object is nil:

    article = nil
    article.nil?  # => true
    

    empty? checks if an element - like a string or an array f.e. - is empty:

    # Array
    [].empty?   #=> true
    # String
    "".empty?   #=> true
    

    Rails adds the method blank? to the Object class:

    An object is blank if it‘s false, empty, or a whitespace string. For example, "", " ", nil, [], and {} are blank.

    This simplifies

    if !address.nil? && !address.empty?
    

    to

    if !address.blank?



    .nil?

    - It is Ruby method
    - It can be used on any object and is true if the object is nil.
    - "Only the object nil responds true to nil?" - RailsAPI

    nil.nil? = true
    anthing_else.nil? = false
    a = nil
    a.nil? = true
    “”.nil = false

    .empty?

    - It is Ruby method
    - can be used on strings, arrays and hashes and returns true if:
    • String length == 0
    • Array length == 0
    • Hash length == 0
    
    - Running .empty? on something that is nil will throw a NoMethodError

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


    .blank?

    - It is Rails method
    - operate on any object as well as work like .empty? on strings, arrays and hashes.

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

    - It also evaluates true on strings which are non-empty but contain only whitespace:

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

    Quick tip: !obj.blank? == obj.present?

    activesupport/lib/active_support/core_ext/object/blank.rb, line 17 # (Ruby 1.9)

    def present?
     !blank?
    end
  • 相关阅读:
    初识C++
    Linux下死锁的调研
    C语言实现单链表面试题(进阶篇)
    C语言实现单链表面试题(基础篇)
    IPC之—共享内存
    IPC之—信号量
    IPC之—消息队列
    初识多线程
    Mysql5.7安装
    RabbitMQ单节点安装/使用!
  • 原文地址:https://www.cnblogs.com/zs-note/p/3955311.html
Copyright © 2011-2022 走看看