RubyはFunctional Programmingのパラダイム、つまりからすべてを表現しているため、の値を返します。これは、Javaなどの言語が本当に(:
public boolean test() {
boolean x = if (1 > 2) { false; } else { true; };
return x;
}
単に構文的に有効でないなど)をサポートしていないアイデア、条件文のためにも当てはまります。
あなたはRubyのターミナルでこれを見ることができます:
will_be_assigned_nil = false if (1 > 2) # => nil
will_be_assigned_nil # => nil
だから、あなたの質問に。 最初のものは、次のように書き換えることができます。
if x < y
mininum = x
else
minimum = y
end
第二は、他の言語での三項演算子のようなものです、と同等です:
if x > y
max = x
else
max = y
end
言語のルーツ&遺産を覚えておくと便利です彼らの構造を理解しようとするとき。 RubyはPerlとの哲学を共有しており、慣用的なRubyコードはしばしば優雅さを重視しています。
「表現後」のスタイルの条件文は、これの良い例です。私は私の方法の開始時にガード表現を持っている場合、それは私が書くことのために珍しいことではありません。
raise "Pre-condition x not met" unless x # (or "if !x" , preference thing)
raise "Pre-condition y not met" unless y # etc., etc.
代わりの
if !x
raise "Pre-condition x not met"
end
if !y
raise "Pre-condition y not met"
end
「あなたは私のような正規のif-else文で次の書き込みを助けることができますこの?" - 私はこの質問を理解していません。 –
私は質問を言い換えました。 :) –