Mar*_*ins 5 ruby casting boolean
在 irb 中玩弄,我注意到你可以将任何东西转换为 Ruby 中的布尔值,例如:
2.0.0-p451 :021 > !nil
=> true
2.0.0-p451 :024 > !!3
=> true
Run Code Online (Sandbox Code Playgroud)
因此,实际上,!!将任何内容解析为其布尔值。有没有更干净的方法来做到这一点?无需使用!运算符。
不,!!这是最干净的方法。
但是,如果您使用 Rails,则可以查看object.present?. false它针对以下所有情况返回:
false
nil
""
[]
{}
Run Code Online (Sandbox Code Playgroud)
最后三个返回true为!!但将返回false为present?。