web-dev-qa-db-fra.com

Simuler un opérateur ternaire dans Elixir

Comment effectuer une vérification conditionnelle similaire sur Elixir?

if (x > 0) ? x : nil

Est-ce le seul équivalent dans le monde des élixirs?

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

Pour moi, le if EST l'équivalent d'un opérateur ternaire car il évalue une valeur qui, pour diverses autres langues, ne le fait pas.

alors x = if false, do: 1, else: 2

est essentiellement x = false? 1 : 2

Je ne sais pas pourquoi Ruby l'a adopté (si vous venez de Ruby) car il a des instructions if assignables. En C, le ternaire est utile car le code gonfle avec l'équivalent des instructions if. Bien sûr, les programmeurs C désespérément désespérés sont devenus fous et ont fait de nombreux imbriqués sur des ternaires imbriqués :)

29
Keith Nicholas

Oui, il n'y a rien de tel qu'un opérateur ternaire dans Elixir. La version mot-clé de if est probablement la chose la plus proche.

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

J'ai vu cette alternative dans un Tweet ,

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