有没有关于如何区分 .nil?、 .blank?和 .empty?的指南?
.nil?
.blank?
.empty?
我通常对什么时候在我的应用程序中使用它们感到困惑,因为它们似乎都表示同样的意思,但有不同的含义。
Does anyone have any cheat sheet on the gory details?
我找到了一个很好的解释:
测试对象是否为 确切地说,零,即是否是 只要一个实例 NilClass. 是一个方法一些对象 你需要检查 documentation for each case. For 例子,空数组是一个 不是 nil (它是一个数组,对吗?)和 没有元素。空字符串是 不为零的(它是一个字符串) 对吧?)没有字节,什么都没有。 您要求的空白方法没有 属于 Ruby,它是一个 Rails 分机: Http://api.rubyonrails.com/classes/object.html#m000011.
测试对象是否为 确切地说,零,即是否是 只要一个实例 NilClass.
是一个方法一些对象 你需要检查 documentation for each case. For 例子,空数组是一个 不是 nil (它是一个数组,对吗?)和 没有元素。空字符串是 不为零的(它是一个字符串) 对吧?)没有字节,什么都没有。
您要求的空白方法没有 属于 Ruby,它是一个 Rails 分机: Http://api.rubyonrails.com/classes/object.html#m000011.
如果你点击那篇文章末尾的链接,你会发现 blank?方法只是简单地结合了 nil?和 empty?方法调用。
blank?
nil?
empty?
nil? -检查变量是否引用对象
empty? - may be used to check on various object types like “空字符串” or empty array []
blank? -检查 nil?或 empty?。
nil?是在所有 Objects上定义的,它只在 nil单例上返回 true。
Objects
nil
true
blank?也是在所有对象上定义的,如果对象也响应 empty?且为空,或者是 false类型值(!object始终是 true) ,则返回 true。
false
!object
empty?在几个集合对象上定义,如果没有元素,则为 true。它也是在 String上定义的。
String
note that blank? is ActiveSupport and not in Rails 1.8.
ActiveSupport
在这里,我做了这个有用的表格所有的情况下