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

  • 相关阅读:
    POJ2376 Cleaning Shifts
    百度首页图标
    NOIP2016换教室
    CH3803扑克牌
    【POJ2723】Get Luffy Out
    【USACO13DEC】 最优挤奶
    【SP2916】Can you answer these queries V
    【线段树】各种模板集合
    【SCOI2013】摩托车交易
    【CF1174D】 Ehab and the Expected XOR Problem
  • 原文地址:https://www.cnblogs.com/wangyuyu/p/3243060.html
Copyright © 2011-2022 走看看