web-dev-qa-db-ja.com

Elixirで三項演算子をシミュレートする

Elixirで同様の条件付き1行チェックを行う方法は?

if (x > 0) ? x : nil

これはエリクサーの世界で唯一の同等物ですか?

if true, do: 1, else: 2
32
Teo Choong Ping

私にとって、if [〜#〜] is [〜#〜]は、他のさまざまな言語では評価されない値に評価される三項演算子と同等です。

そう x = if false, do: 1, else: 2

基本的にx = false? 1 : 2

Rubyがそれを採用した理由がわからない(Rubyから来た場合))割り当て可能なifステートメントがあるため。Cでは、3項はもちろん、同等のifステートメントです。Cプログラマーは簡潔さを求めて必死になっており、ネストされた3進数に多くのネストを行いました:)

29
Keith Nicholas

はい、Elixirには三項演算子のようなものはありません。 ifのキーワードバージョンはおそらく最も近いものです。

if condition, do: true_expr, else: flase_expr
14
michalmuskala

私はこの代替案を Tweet で見ました、

is_it_true && "TRUE" || "FALSE"
8
coderVishal