我发现自己在反复寻找nil?,空白?空的?在Ruby on Rails中。这是我最接近的结果:
空白的吗?对象为false、空或空白字符串。例如,"","",nil,[],{}为空。 nil ?对象是NilClass的实例。 空的吗?对象是特定于类的,定义因类而异。如果字符串没有字符,则字符串为空;如果数组不包含项,则数组为空。
是否遗漏了什么,或者可以进行更紧密的比较?
我发现自己在反复寻找nil?,空白?空的?在Ruby on Rails中。这是我最接近的结果:
空白的吗?对象为false、空或空白字符串。例如,"","",nil,[],{}为空。 nil ?对象是NilClass的实例。 空的吗?对象是特定于类的,定义因类而异。如果字符串没有字符,则字符串为空;如果数组不包含项,则数组为空。
是否遗漏了什么,或者可以进行更紧密的比较?
当前回答
只是关于any的一点注释?推荐:他说得对,它通常相当于!empty?。然而,任何?将返回true,返回一个只有空格的字符串(ala " ")。
当然,也可以看到上面1.9的评论。
其他回答
Rails 4
@corban-brook的“Array”的替代方案:空白?'用于检查数组是否只保存空值,可以视为空白?正确的:
[ nil, '' ].all? &:blank? == true
你还可以这样做:
[nil, '', "", " ",' '].reject(&:blank?).blank? == true
快速提示:!obj.blank?= = obj.present吗?
在某些表达中是否方便/更方便眼睛
存在吗?方法可用于检查数据是否存在于数据库中。它返回布尔值true或false。
只是关于any的一点注释?推荐:他说得对,它通常相当于!empty?。然而,任何?将返回true,返回一个只有空格的字符串(ala " ")。
当然,也可以看到上面1.9的评论。
.nil吗?可用于任何对象,如果对象为nil则为true。
空虚吗?可用于字符串、数组和散列,如果满足以下条件则返回true:
字符串长度== 0 数组长度== 0 哈希长度== 0
运行空虚吗?在为nil的东西上会抛出一个NoMethodError。
这就是。blank?出现的原因。它是由Rails实现的,将对任何对象进行操作,以及像.empty?在字符串、数组和散列上。
nil.blank? == true
false.blank? == true
[].blank? == true
{}.blank? == true
"".blank? == true
5.blank? == false
0.blank? == false
.blank吗?对于非空但只包含空格的字符串,它的值为true:
" ".blank? == true
" ".empty? == false
Rails还提供了.present?,返回.blank的否定?。
数组gotcha:空白?即使数组的所有元素都为空,也将返回false。在这种情况下,要确定空白,使用all?空白的吗?,例如:
[ nil, '' ].blank? == false
[ nil, '' ].all? &:blank? == true