Ruby の三項演算子の構文

ここで、Ruby のソースコードの簡単な例として、私が定義したクラスの CSV レコードを表示するメソッドで Ruby の三項演算子をどのように使用したかを紹介します。

def print_csv_record last_name.length==0 ? printf(",") : printf("\"%s\",", last_name) first_name.length==0 ? printf(",") : printf("\"%s\",", first_name) city.length==0 ? printf(",") : printf("\"%s\"", city) printf("\n")end

このメソッドからわかるように、各行は三項演算子を使用して次のように判断しています:

  1. 与えられたフィールドの長さが 0 の場合、最初の printf 文を使用します。
  2. Otherwise, use the second printf statement.

少ないように見えるかもしれませんが、これで終わりです。 クールなのは、同等の if/then 構文よりもはるかに短く、しかも非常に読みやすいことです。

Ruby の三項演算子についてもう少し情報が必要な場合は、自由に読み進めてください。

三項演算子の一般的な構文

前の例からわかるように、Ruby の三項演算子の一般的な構文は次のようになります。

test-expression ? if-true-expression : if-false-expression

前の例で、私の最初の test-expression はこのようなものでした。

last_name.length==0

そしてその if-true-expression は次のようになり、

printf(",")

そしてその if-false-expression は次のようになります。

printf("\"%s\",", last_name)

希望としては三項演算子の一般的な構文を示すことによって、私の以前のコードをもう少し理解しやすくするのに役立ちました。

もう 1 つの例

三項演算子の例をもう 1 つ挙げると、数値テスト比較を使用し、2 つの可能な puts 文、つまり、テストが真と評価された場合に実行される文と、偽と評価された場合に実行される文を続けています。

# set the speedspeed = 90# somewhere later in the program ...speed > 55 ? puts("I can't drive 55!") : puts("I'm a careful driver")

ご想像のとおり、このコードのセグメントは次のように表示されます:

I can't drive 55!

(これは、私の運転習慣も要約しています。)

三項演算子はクールです。 if/then ステートメントを短くすることができ、なおかつ Ruby のコードを読みやすくすることができます。