Ruby で true と評価されるオブジェクトと false と評価されるオブジェクト


Ruby のあらゆるオブジェクトは条件式で truefalse と評価されますが, どのオブジェクトが true と評価され, どのオブジェクトが false と評価されるのでしょうか.

結論から言いますと, falsenil 以外は true と評価され, falsenil のみ false と評価されます.

なので String の "", Array の [], Hash の {}, Integer の 0 もみんな true と評価されます.

一見するとどれも false と評価されそうですが…

なので Ruby ではこのオブジェクトは true だったかな false だったかなという混乱が起きにくいです.

なんだって false になるのは falsenil だけで, それ以外は全て true になるということだけ押さえておけばいいのですから.

Ruby の条件式でのオブジェクトの真偽値の評価はシンプルでいいですね.