在 Ruby 中将任何内容转换为布尔值

Converting anything to a boolean in Ruby

玩 irb,我注意到你可以在 Ruby 中将任何东西转换为布尔值,例如:

2.0.0-p451 :021 > !nil
 => true

2.0.0-p451 :024 > !!3
 => true

所以实际上,!! 将任何内容解析为其布尔值。有没有更清洁的方法来做到这一点?不使用 ! 运算符。

不,!! 是最干净的方法。

但是,如果您在 Rails,您可以查看 object.present?。它 returns false 用于以下所有内容:

false
nil
""
[]
{}

最后三个 return true!! 但将 return falsepresent?.