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
  • 相关阅读:
    S1 商品信息管理系统
    用例图
    mvc使用mongodb时objectId序列化与反序列化
    windows下检測文件改变
    【Android 开发实例】时间管理APP开发之数据库设计
    设计模式 之 原型
    ANT安装及配置
    Java环境变量设置
    Win7安装软件,界面上中文显示乱码的解决方案
    Some perl tips
  • 原文地址:https://www.cnblogs.com/zs-note/p/3987605.html
Copyright © 2011-2022 走看看