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