我发现自己在反复寻找nil?,空白?空的?在Ruby on Rails中。这是我最接近的结果:
空白的吗?对象为false、空或空白字符串。例如,"","",nil,[],{}为空。 nil ?对象是NilClass的实例。 空的吗?对象是特定于类的,定义因类而异。如果字符串没有字符,则字符串为空;如果数组不包含项,则数组为空。
是否遗漏了什么,或者可以进行更紧密的比较?
我发现自己在反复寻找nil?,空白?空的?在Ruby on Rails中。这是我最接近的结果:
空白的吗?对象为false、空或空白字符串。例如,"","",nil,[],{}为空。 nil ?对象是NilClass的实例。 空的吗?对象是特定于类的,定义因类而异。如果字符串没有字符,则字符串为空;如果数组不包含项,则数组为空。
是否遗漏了什么,或者可以进行更紧密的比较?
当前回答
一个特殊的情况是当试图评估一个布尔值是否为nil时:
false.present? == false
false.blank? == true
false.nil? == false
在这种情况下,建议使用。nil?
其他回答
延伸朱利安的表格:
Ref: empty? blank? nil? Stupid can't tell the difference
存在吗?方法可用于检查数据是否存在于数据库中。它返回布尔值true或false。
我用所有的案例做了一个有用的表格:
空白的吗?,现在呢?是由Rails提供的。
其他人都很好地解释了两者的区别。
我想在Ruby On Rails中添加,最好使用obj.blank?还是obj.present ?而不是obj。nil?还是obj.empty ?。
obj.blank吗?处理所有类型的nil, ",[],{},如果值不可用则返回true,如果值在任何类型的对象上可用则返回false。
一个区别是。nil?和空虚吗?是编程语言Ruby提供的方法,而.blank?是由web开发框架Rails添加的。