Techioz Blog

Rubyの複数行の三項式?

概要

次のようなものを変換しようとしています:

if condition?
   expression1 line 1
   expression1 line 2
   expression1 line 3
else 
   expression2 line 1
end

三項に対する私の質問は、複数の行を 1 行の 1 つの式にどのように入れるかということです。 Javaのようにセミコロンで区切るのでしょうか? このような?

condition? expression1 line 1; expression1 line 2; expression1 line 3 : expression2

解決策

Ruby では常に改行をセミコロンに置き換えることができるので、実際にプログラム全体を 1 つの長い巨大な行で書くことができます。それが可読性と保守性の点で良いかどうかは、あなたにお任せします。 (注: 優先順位が一致しない場合には、グループ化のために括弧を挿入する必要がある場合があります。) 条件式を 1 行で記述する方法は次のとおりです。

if condition? then expression1 line 1; expression1 line 2; expression1 line 3 else expression2 line 1 end