このようなコードのショートカットはありますか?
def test
obj = get_from_somewhere()
if obj
true
else
false
end
end
Python では、次のようにできます。
return True if obj else False
このようなコードのショートカットはありますか?
def test
obj = get_from_somewhere()
if obj
true
else
false
end
end
Python では、次のようにできます。
return True if obj else False
これを実現する一般的な Ruby のイディオムは次のとおりです。
def test
!!get_from_somewhere
end
ダブルバンは、オブジェクトを「ブール値の同等物」に変換します。
object = 'foo'
!object
# => false
!!object
# => true
Python とは異なり、Ruby ではブール値のコンテキストで単にfalse
andnil
が false と評価されることに注意してください。次に例を示します。
!!0
# => true