私のメソッドは、 とexists_else
の 2 つのパラメーターを取ります。である場合は、 を返します。そうでない場合は、 を返します。を呼び出すと、が返されます。base
fallback
base
nil
fallback
nil
base
exists_else(true, false)
true
標準的なif
ステートメントを使用すると、次のtrue
ように返されます。
def exists_else(base, fallback)
unless base.nil?
base
else
fallback
end
end
a = true
exists_else( a, false )
# => true
以下に示すインライン実装を使用すると、 が返されますfalse
。
def exists_else(base, fallback)
base unless base.nil? else fallback
end
a = true
exists_else( a, false )
# => false
false
インライン実装で返されるのはなぜですか?