Come eseguire il controllo condizionale di una riga in Elixir?Simula operatore ternario in elisir
if (x > 0) ? x : nil
È questo l'unico equivalente nel mondo di elisir?
if true, do: 1, else: 2
Come eseguire il controllo condizionale di una riga in Elixir?Simula operatore ternario in elisir
if (x > 0) ? x : nil
È questo l'unico equivalente nel mondo di elisir?
if true, do: 1, else: 2
Per me, la se IS l'equivalente di un operatore ternario in quanto restituisce un valore che, per varie altre lingue doesn' t.
così x = if false, do: 1, else: 2
è fondamentalmente x = false? 1 : 2
Non certo perché Rubino adottato (se si proviene da Ruby) in quanto ha assegnabile if. in C il ternario è utile in quanto il codice si gonfia con le istruzioni if equivalenti. Certamente i programmatori C cercano disperatamente che la chiarezza diventi pazza e ha fatto molti annidamenti su ternari nidificati :)
Sì, non c'è niente come un operatore ternario in Elixir. La versione di parola chiave di if
è probabilmente la cosa più vicina.
if condition, do: true_expr, else: flase_expr
per favore, fai un esempio di cosa intendi. –
ho visto questa alternativa in un tweet,
is_it_true && "TRUE" || "FALSE"
Si noti che questo ha un grande trucco: 'is_it_true && false || : foobar 'restituirà sempre': foobar' e mai 'false'. Questo perché 'x && false' valuterà sempre un valore falsy, per qualsiasi valore di' x' - e 'false || x' valuterà sempre a 'x', per qualsiasi valore di' x'. Lo stesso trucco si applica se hai 'nil' invece di' false'. –
'a = true && 1 || 2', non vedo il gotcha qui se lo strutturi bene. – Besto
http://elixir-examples.github.io/examples/ternary –