「if」ステートメントの最後に「then」がある場合の違いは何ですか?
概要
if ステートメントの最後に then を置く場合、これら 2 つの Ruby if ステートメントの違いは何でしょうか?
if(val == "hi") then
something.meth("hello")
else
something.meth("right")
end
そして
if(val == "hi")
something.meth("hello")
else
something.meth("right")
end
解決策
then は、Ruby が条件と式の真の部分を識別するのに役立つ区切り文字です。
if 条件 then true 部分 else false 部分 end
if 式を 1 行で記述したい場合を除き、 then はオプションです。複数行にまたがる if-else-end の場合、改行は条件文を true 部分から分割するための区切り文字として機能します。
# can't use newline as delimiter, need keywords
puts if (val == 1) then '1' else 'Not 1' end
# can use newline as delimiter
puts if (val == 1)
'1'
else
'Not 1'
end