Jak wykonać podobne, warunkowe, jednoliniowe sprawdzenie w eliksiru?Symulacja operatora trójskładnikowego w eliksiru
if (x > 0) ? x : nil
Czy jest to jedyny odpowiednik w świecie eliksiru?
if true, do: 1, else: 2
Jak wykonać podobne, warunkowe, jednoliniowe sprawdzenie w eliksiru?Symulacja operatora trójskładnikowego w eliksiru
if (x > 0) ? x : nil
Czy jest to jedyny odpowiednik w świecie eliksiru?
if true, do: 1, else: 2
Dla mnie, jeśli JEST odpowiednikiem operatora potrójnego gdyż ocenia się wartość, która dla wielu innych językach nie robi” t.
tak x = if false, do: 1, else: 2
jest w zasadzie x = false? 1 : 2
Nie wiem, dlaczego Ruby przyjęła go (jeśli pochodzą z Ruby) jak to ma przypisane if. w C potrójny jest użyteczny, gdy kod rozlewa się z odpowiednikami instrukcji if. Oczywiście programiści C rozpaczliwie szukający zwięzłości oszaleli i wiele z nich zagnieździło się na gniazdach trójkowych :)
Tak, w eliksiru nie ma nic takiego jak trójskładnikowy operator. Wersja słowa kluczowego if
jest prawdopodobnie najbliższa.
if condition, do: true_expr, else: flase_expr
proszę podać przykład tego, co masz na myśli. –
Widziałem tę alternatywę w tweet,
is_it_true && "TRUE" || "FALSE"
Zauważ, że ma to duże znaczenie: 'is_it_true && false || : foobar' zawsze zwróci ': foobar' i nigdy' false '. Dzieje się tak dlatego, że 'x && false' zawsze ocenia wartość falsy, dla dowolnej wartości' x' - i 'false || x 'zawsze będzie oceniało' x' dla dowolnej wartości 'x'. Ta sama sytuacja ma zastosowanie, jeśli masz 'zero' zamiast' false'. –
'a = true && 1 || 2', nie widzę tu gotcha, jeśli dobrze ją zbudujesz. – Besto
http://elixir-examples.github.io/examples/ternary –