1

よくあることですが、次のようなものを書く必要があります。

_parsedBetData["prizeLevel"] = params["prizeLevel"] == null ? "default" : params["prizeLevel"]; 

これを行うためのより良い方法があるかどうか私は興味がありますか?私の主な懸念は、params["prizeLevel"]を2回記述しなければならないことです。

もちろん、これは次のような関数に抽出できます。

_parsedBetData["prizeLevel"] = defaultIfNull(params["prizeLevel"], "foo");

function defaultIfNull(o:*, default:*):* {
    return o == null ? default : o;
}

しかし、その後、私はこの検査をしたいところならどこからでもこの機能にアクセスできなければなりません。したがって、この問題を解決するための賢い方法があるかどうか疑問に思っています。たぶん、ある種のビットマジックの助けを借りて?それとも、プロトタイピング/動的なものがここで適用可能ですか?

私がこれまでに思いついた最善の解決策は、コードIDE内にマクロを作成して、特定のキーボードの組み合わせにこれを書き込ませることです。しかし、私は誰かがより良い考えを持っているに違いない。

4

2 に答える 2

4

おそらく、論理 OR 割り当てが探しているものです:)

あなたができる

params["賞品レベル"] ||= "デフォルト";

他の変数に入れたい場合は、単純なOR 演算子を使用します

_parsedBetData["賞金額"] = params["賞金額"] || "デフォルト";

- 編集 -

32bitkid と cleong の両方が正しいです。ビットごとの演算子ではなく、論理演算子を使用する必要があります。

于 2012-08-30T09:21:42.800 に答える
2

これはおそらくあなたが探している構文です:

_parsedBetData["prizeLevel"] = params["prizeLevel"] || "default";

_parsedBetData["prizeLevel"] が null の場合にデフォルトに設定するには、次のようにします。

_parsedBetData["prizeLevel"] ||= "default";

空の文字列も false と評価されるため、これは希望どおりに機能しない可能性があります。

于 2012-08-30T09:42:04.047 に答える