Rubyで !! という二重否定を単項演算子として使う理由は? - QA@IT
カテゴリー:コンピュータ・ITRubyで !! という二重否定を単項演算子として使う理由は? - QA@IT
!!bar の意図は bar の値を true か false のどちらかに変換することでしょうが、Ruby 1.9 以降では、! は !@ メソッドの呼び出しということになったので、!! はその意図を完全に実装しているわけではありません。!@ が再定義されていると true でも false でもない値になることがありえます。 それを避ける方法は bar ? true : false というよう...
http://qa.atmarkit.co.jp/q/2631