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
  • 相关阅读:
    Bootstrap导航组件
    Bootstrap输入框组
    Bootstrap按钮式下拉菜单
    Bootstrap按钮组
    Bootstrap下拉菜单
    Bootstrap 中的 aria-label 和 aria-labelledby
    js 在函数中遇到的this指向问题
    js中 clientWidth offsetWidth scrollWidth等区别
    小程序--授权封装
    小程序--分享功能
  • 原文地址:https://www.cnblogs.com/zs-note/p/3987605.html
Copyright © 2011-2022 走看看