私のメソッドは、 とexists_elseの 2 つのパラメーターを取ります。である場合は、 を返します。そうでない場合は、 を返します。を呼び出すと、が返されます。basefallbackbasenilfallbacknilbaseexists_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インライン実装で返されるのはなぜですか?