ActiveSupport 使用实例方法 blank?
扩展 Object
:
class Object
def blank?
respond_to?(:empty?) ? !!empty? : !self
end
end
!!empty?
可以写成 empty?
吗?这是一种文体选择,以便它可以作为返回 boolean 值的方法轻松阅读吗?还是有其他原因?
最佳答案
原因是 !!
将响应从空值强制转换为 boolean 值。 Empty 可以在不同的对象上以不同的方式定义,因此 Rails 中的某些人可能已将 .empty?
定义为不返回 boolean 值。由于 .blank?
需要返回一个 boolean 值,因此需要 !!
来确保返回一个 boolean 值。
关于ruby - `!!empty?` 是什么意思?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34728747/