何时使用零,空白,空?

有没有指导如何区分.nil?.blank?.empty?

我通常总是困惑于什么时候在我的应用程序中使用它们,因为它们似乎意味着相同的事物,但具有不同的含义。

有没有人有血淋淋的细节备忘单?

  • nil? – 检查variables是否引用一个对象

  • empty? – 可用于检查各种对象types,如空string“”或空数组[]

  • blank? – 检查nil? 还是empty?

在这里,我用所有的情况做了这个有用的表格 在这里输入图像说明

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

  • blank? 也定义在所有的对象上,如果对象也是empty? ,它返回true empty? 并且是空的,或者是一个falsetypes值( !object永远是true )。

  • empty? 在几个集合对象上定义,如果没有元素,则为true 。 它也是在String定义的。

注意blank?ActiveSupport而不是Rails 1.8

我在这里find了一个好的解释:

零? testing对象是否完全为零,也就是说它是否是NilClass的唯一实例。

空? 是一些对象响应的方法。 您需要检查每个案例的文档。 例如,空数组是一个不为零的数组(它是一个数组吗?),没有元素。 一个空string是不是零(这是一个string吧?),没有字节,什么都没有。

空白? 你所要求的方法不属于Ruby,它是一个Rails扩展: http : //api.rubyonrails.com/classes/Object.html#M000011 。

如果你点击链接到该post的末尾,你会发现blank? 方法简单地结合了nil?empty? 方法调用。