Ruby on rails 何时使用nil、blank、empty?

Ruby on rails 何时使用nil、blank、empty?,ruby-on-rails,ruby,Ruby On Rails,Ruby,关于如何区分.nil?、.blank?和.empty?,有什么指导原则吗 我通常对什么时候在我的应用程序中使用它们感到困惑,因为它们似乎都意味着相同的东西,但有不同的含义 有人有关于血淋淋的细节的备忘单吗?我找到了一个很好的解释: 零?测试对象是否为空 完全为零,这就是它是否是 唯一需要的实例 尼尔斯班 空的?方法是否包含一些对象 回应你需要检查一下房间 每个案例的文档。对于 例如,空数组就是 不是nil(它是一个数组,对吗?) 没有任何元素。空字符串无效 不是零的一个(它是一个字符串) 是吗?

关于如何区分
.nil?
.blank?
.empty?
,有什么指导原则吗

我通常对什么时候在我的应用程序中使用它们感到困惑,因为它们似乎都意味着相同的东西,但有不同的含义


有人有关于血淋淋的细节的备忘单吗?

我找到了一个很好的解释:

零?测试对象是否为空 完全为零,这就是它是否是 唯一需要的实例 尼尔斯班

空的?方法是否包含一些对象 回应你需要检查一下房间 每个案例的文档。对于 例如,空数组就是 不是nil(它是一个数组,对吗?) 没有任何元素。空字符串无效 不是零的一个(它是一个字符串) 是吗?)并且没有字节,什么都没有

空白?你所要求的方法不适用 属于Ruby,它是一个Rails 分机:

如果你点击文章末尾的链接,你会发现
blank?
方法只是将
nil?
empty?
方法调用结合起来。

  • -检查变量是否引用对象

  • 空?
    -可用于检查各种对象类型,如或

  • -检查
    nil?
    empty?

      • nil?
        在所有
        对象上定义,它只在
        nil
        单例上返回
        true

      • 空白?
        也定义在所有对象上,如果对象也响应
        空?
        且为空,或者是
        类型值(
        !object
        始终为
        ),则返回

      • empty?
        在多个集合对象上定义,如果没有元素,则为
        true
        。它也在
        字符串上定义


      请注意,
      blank?
      ActiveSupport
      ,不在Rails 1.8中。

      在这里,我制作了一个有用的表格,其中包含所有大小写

      仅包含“blank”字符的字符串被视为
      blank?
      而不是
      empty?
      ,例如“\n\t”如果对象的值为false,Blank也会返回true。我认为
      nil
      的描述不准确,因为
      nil.nil?
      是true,但是
      nil
      NilClass
      的对象。如果您(a)没有使用Rails,但(b)正在使用ActiveSupport,至少在某个版本以上(不确定是哪个版本)。。。您只需要包含
      blank?
      ,下面是如何选择这一位:
      require'active\u support/core\u ext/object/blank
      ()
      只包含“blank”字符的字符串被视为空白?但不是空的?例如“\n\t”
      ,如对该问题的另一个回答中所述。此表非常好-感谢分享!这真的非常有用。谢谢
      nil.blank?
      返回
      未定义的方法
      错误。我使用
      object.to_.empty?
      。当对象为
      nil
      empty
      字符串时,它返回
      true
      。@SharvyAhmed
      object.to_.s.empty?
      在普通ruby中使用时有一个缺点-如果未定义对象变量,它会引发
      NameError
      异常。