特にPHPから来た人には頭に入れておいたほうがいいやつ。
環境
$ ruby -v ruby 2.5.0p0 (2017-12-25 revision 61468) [x86_64-darwin18]
どういうことか
FalseClassであるfalseと何もない nil
のみが偽を表すもので、それ以外は全て真になる。
ドキュメント曰く
false のクラス。 false は FalseClass クラスの唯一のインスタンスです。 false は nil オブジェクトとともに偽を表し、 その他の全てのオブジェクトは真です。 - class FalseClass (Ruby 2.6.0)
コード例
test.rbとして以下の内容を記載
def message(value) if value p "this is 真" else p "this is 偽" end end message(true) message(false) message(nil) # 配列にnilが入っていても、配列なので真 message([nil]) # 0は真になる message(0)
結果
$ ruby test.rb "this is 真" "this is 偽" "this is 偽" "this is 真" "this is 真"
となる。