Operator warunkowy (trenary operator). Czytam opis na wiki i nie rozumiem… ale u mnie panuje trzydniówka i nie potrafię się skupić.
w programowaniu konstrukcja języka programowania, w których odróżnia się wyrażenia od instrukcji, będący formą instrukcji warunkowej wyrażoną za pomocą operatora trójargumentowego; bywa ona instrukcją wyrażeniową.
W kodzie występuje z reguły tak:
condition ? true : false
Przykład z życia – tworzę sobie okienko dialogowe do dodawania/edycji posiłku. Jeśli okienko służy do edycji przekazuję do funkcji obiekt meal, jeśli jest to dodawanie nowego, to meal jest nullem.
https://gist.github.com/jezinka/b809d4ca861f815635afc1c1b72c9528
Wykorzystuję operator warunkowy żeby w zależności od tego czy obiekt meal jest nullem, czy nie ustawiać na przycisku tekst „dodaj” lub „edytuj”
https://gist.github.com/jezinka/48599861787df5858cd21051b393bc85
Ten zapis jest chyba o wiele bardziej czytelny niż zrobienie tego samego za pomocą if-else. Jeszcze w takim miejscu jak konstruktor przycisku.
P.S. W fajnych językach jak groovy ( 😉 ) występuje jeszcze coś takiego jak skrócony operator trójwartościowy (Elvis).
Uff, w C# też jest podobny operator („??”). Już się bałem że piszę w języku który nei jest fajny 😛
w C# fajny jest też Linq, ale to było dawno jak w nim pisałam – mogło się coś zmienić od tego czasu 😉
Na szczęście nie zmieniło i nadal jest fajny 🙂
Elvis Elvisem, a niektóre fajne języki zamiast takich kombinacji pozwalają zrobić po prostu:
name = user.name || 'Default name’
😉