在irb中玩,我注意到你可以在Ruby中将任何内容转换为布尔值,例如:
2.0.0-p451 :021 > !nil
=> true
2.0.0-p451 :024 > !!3
=> true
因此,!!
实际上将任何内容解析为其布尔值。有没有更清洁的方法来做到这一点?不使用!
运算符。
答案 0 :(得分:1)
不,!!
是最干净的方式。
但是,如果您使用的是Rails,则可以查看object.present?
。它会为以下所有内容返回false
:
false
nil
""
[]
{}
最后三个返回true
!!
,但会false
返回present?
。