前置き: nil == falseの結果はfalse Rubyの本には「条件分岐でnilとfalse以外のすべてのオブジェクトがtrueとみなされます」と書かれているのが定番です。 しかし以下のとおり、nilとfalseは別のオブジェクトです。 nil == false #=> false nil?も同じことをおっしゃっています。 nil.nil? #=> true false.nil? #=> false true.nil? #=> false nilとfalseが同一視されるのは、あくまで条件分岐(ifやcase)のときです。 a = nil if a "true!" else "false!" end #=> "false!" 上のようにaをnilからfalseに変えても結果は変わりません。 Rubyにtrue?メソッドやfalse?メソッドはない ちなみにtrue?やfalse?と