表題の通りシリーズ、直感的にそうなるんじゃね?と思っていても試したことなかったのでメモ
環境
$ ruby -v ruby 2.5.0p0 (2017-12-25 revision 61468) [x86_64-darwin18]
例
test.rb として以下のファイルを用意する
def one_of_true(target) true if target == 1 end pp one_of_true(1) pp one_of_true(0)
下記のような結果になる
$ ruby test.rb
true
nil
原理
右辺の条件が成立する時に、左辺の式を評価してその結果を返します。 条件が成立しなければ nil を返します。 - 制御構造 (Ruby 2.5.0) - if修飾子
ということで後置ifの条件式(上で言う右辺)が成立するときは左辺を出すが、そうでないときはnilということ。
メソッド内に記述がないときと同等になるからだ!とかではないので注意。