Čo budete robiť
Pripravený výraz spustíte v cvičisku vyššie, budete meniť vždy jeden vstup a vysvetlíte výsledok. Začnite v režime Iba CEL a potom rovnaké pravidlo zopakujte v režime CEL + JSON.
Ako to funguje
Podmienený operátor má tvar podmienka ? hodnotaAkPlatí : hodnotaAkNeplatí. CEL najprv vyhodnotí podmienku a potom iba vybranú vetvu. Obe vetvy by mali predstavovať rovnaký druh výsledku, aby volajúca aplikácia vedela, čo dostane.
Prečítajte pripravený príklad
Pravidlo v režime CEL + JSON je:
score >= passScore ? 'passed' : 'try again'Jeho vstup je:
{
"score": 72,
"passScore": 80
}Záložka Iba CEL obsahuje hodnoty aj pravidlo v jednom výraze. Povolené rozšírenie cel.bind() udrží každý názov lokálny v jeho poslednom argumente.
Vyhodnotenie krok za krokom
72 >= 80vrátifalse.- CEL vyberie výraz za znakom
:. - Konečný výsledok je
"try again".
Vaša úloha
- Spustite príklad a overte vybranú vetvu.
- Zmeňte
scorena80a výraz spustite znova. - Odstráňte jednu úvodzovku, pozrite si chybu syntaxe a úvodzovku vráťte.
Očakávané pozorovanie: Skóre 80 vyberie "passed", pretože operátor >= zahŕňa aj rovnosť.
Častá chyba
Chyba syntaxe zastaví spracovanie ešte pred vyhodnotením vstupu. Chýbajúca premenná má platnú syntax, ale zlyhá pri čítaní hodnoty.
Zobraziť vysvetlenie
Nie. Vyhodnotí sa iba vetva vybraná podmienkou.
Kontrolná otázka
Vyhodnotí sa nepravdivá vetva, keď podmienka platí?
Hlavná myšlienka
Operátor ?: použite na výber hodnoty jednou podmienkou a rozlišujte chyby syntaxe od chýb vstupu.
Zdroje
CEL-DEV— oficiálny prehľad CEL.CEL-LANG— oficiálna definícia jazyka CEL.CEL-GO-BIND— oficiálna dokumentácia voliteľného rozšíreniacel.bind()použitého v samostatnej záložke.