2016-06-25 51 views

Odpowiedz

7

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 :)

+1

http://elixir-examples.github.io/examples/ternary –

10

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 
+0

proszę podać przykład tego, co masz na myśli. –

4

Widziałem tę alternatywę w tweet,

is_it_true && "TRUE" || "FALSE" 
+4

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'. –

+0

'a = true && 1 || 2', nie widzę tu gotcha, jeśli dobrze ją zbudujesz. – Besto