何时使用零,空白,空?
有没有指导如何区分.nil? , .blank? 和.empty? ?
我通常总是困惑于什么时候在我的应用程序中使用它们,因为它们似乎意味着相同的事物,但具有不同的含义。
有没有人有血淋淋的细节备忘单?
-
nil?– 检查variables是否引用一个对象 -
empty?– 可用于检查各种对象types,如空string“”或空数组[] -
blank?– 检查nil?还是empty?。
在这里,我用所有的情况做了这个有用的表格 
-
nil?在所有Objects上定义,它只在nil单例中返回true。 -
blank?也定义在所有的对象上,如果对象也是empty?,它返回trueempty?并且是空的,或者是一个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? 方法调用。