我发现自己在反复寻找nil?,空白?空的?在Ruby on Rails中。这是我最接近的结果:

空白的吗?对象为false、空或空白字符串。例如,"","",nil,[],{}为空。 nil ?对象是NilClass的实例。 空的吗?对象是特定于类的,定义因类而异。如果字符串没有字符,则字符串为空;如果数组不包含项,则数组为空。

是否遗漏了什么,或者可以进行更紧密的比较?


当前回答

别忘了吗?通常是空的?在Rails中,我通常检查在语句结束时是否存在if something或unless something,然后使用空白?在需要的地方,因为它似乎在任何地方都有效。

其他回答

快速提示:!obj.blank?= = obj.present吗?

在某些表达中是否方便/更方便眼睛

一个特殊的情况是当试图评估一个布尔值是否为nil时:

false.present? == false
false.blank? == true
false.nil? == false

在这种情况下,建议使用。nil?

我用所有的案例做了一个有用的表格:

空白的吗?,现在呢?是由Rails提供的。

虽然这个问题有n个答案,但我喜欢这里的解释方式,所以再发一个答案:-)

看看下面的数据度量——它在可用的方法中使用的各种数据类型不言自明。

参考:https://blog.appsignal.com/2018/09/11/differences-between-nil-empty-blank-and-present.html

延伸朱利安的表格:

Ref: empty? blank? nil? Stupid can't tell the difference