ActiveSupport Object
使用实例方法扩展blank?
:
class Object def blank? respond_to?(:empty?) ? !!empty? : !self end end
可以!!empty?
写成empty?
呢?这是一个风格选择,以便它作为返回布尔值的方法轻松读取?或者还有其他什么?
这样做的原因是!!
强制从空到布尔的响应.可以在不同的对象上以不同方式定义Empty,因此rails中的某个人可能已经定义.empty?
为不返回布尔值.由于.blank?
需要返回一个布尔值,!!
因此需要确保返回一个布尔值.