Ternární operátor (programování)
ternární operátor „x ? y : z“ používaný v mnoha programovacích jazycích From Wikipedia, the free encyclopedia
Remove ads
Ternární operátor je operátor některých programovacích a skriptovacích jazyků, jako například C, C++, Java, PHP a dalších. Má aritu operace rovnou třem. Nejpoužívanější ternární operátor při programování je operátor pro podmíněný výraz, který se nejčastěji zapisuje pomocí znaků „?:“.
Operátor pro podmíněný výraz
Operátor pro podmíněný výraz se nejčastěji používá pro zkrácení zápisu vyhodnocení podmínky.
„?:“
Tradiční jazyková konstrukce if-else se v jazycích, které syntaxí vychází z jazyka C (například C++, C#, Vala, Objective-C, Java, JavaScript nebo ActionScript) se zapisuje následovně:
if (podmínka) {
výraz1;
} else {
výraz2;
}
Pomocí operátoru pro podmíněný výraz je možné tento zápis zkrátit:
podmínka ? výraz1 : výraz2;
Postup zpracování je takovýto:
- Vyhodnotí se podmínka.
- Je-li podmínka nenulová (true), vyhodnotí se výraz1 a ten bude výsledkem celé operace.
- Je-li podmínka nulová (false), vyhodnotí se výraz2 a ten bude výsledkem celé operace.
Některé jazyky před zpracováním ternárního operátoru vyhodnocují oba výrazy, takže, pokud jsou tyto výrazy náročné na výpočetní čas nebo prostředky, je lepší provést samotné vyhodnocení opisně, pomocí podmíněného vykonání kódu.[1] Operátor ?: má asociativitu zprava doleva.
Specifika C++
V C++ vytváří l-hodnotu, pokud jsou výraz1 i výraz2 l-hodnoty. Operátor ?: v jazyce C++ nelze přetížit.
Další varianty
V jazyce CPL, který je předchůdcem jazyka C a kde se operátor poprvé objevil, se zapisoval jako e1 → e2, e3
.
V jazyce Perl 6 se operátor zapisuje pomocí znaků „??!!“:
podmínka ?? výraz1 !! výraz2;
Remove ads
Elvis operátor
Na tuto kapitolu je přesměrováno heslo Elvis operátor.
Jako "Elvis operátor" je označována dvou-argumentová forma operátoru ?:
, pro ověřování hodnot null
: Vrátí první operand (dokonce i bez vyhodnocování druhého), leda by první byl null, to pak tedy vrátí druhý operand.
Oproti ternárnímu operátoru v Elvis-operátoru není druhý operand, jen první a třetí: První dva splývají do jednoho.
Související informace naleznete také v článku Kotlin (programovací jazyk)#Ukázka použití operátoru Elvis.
Remove ads
Reference
Související články
Wikiwand - on
Seamless Wikipedia browsing. On steroids.
Remove ads