什么时候使用空白,空白,空白?

有没有关于如何区分 .nil?.blank?.empty?的指南?

我通常对什么时候在我的应用程序中使用它们感到困惑,因为它们似乎都表示同样的意思,但有不同的含义。

Does anyone have any cheat sheet on the gory details?

88679 次浏览

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

测试对象是否为 确切地说,零,即是否是 只要一个实例 NilClass.

是一个方法一些对象 你需要检查 documentation for each case. For 例子,空数组是一个 不是 nil (它是一个数组,对吗?)和 没有元素。空字符串是 不为零的(它是一个字符串) 对吧?)没有字节,什么都没有。

您要求的空白方法没有 属于 Ruby,它是一个 Rails 分机: Http://api.rubyonrails.com/classes/object.html#m000011.

如果你点击那篇文章末尾的链接,你会发现 blank?方法只是简单地结合了 nil?empty?方法调用。

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

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

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

note that blank? is ActiveSupport and not in Rails 1.8.

在这里,我做了这个有用的表格所有的情况下enter image description here