CH01-L04 · základy

Podmienky a chyby

Vyberiete jednu z dvoch hodnôt a opravíte chybu vo výraze alebo v údajoch.

Všeobecný CELSpustiteľné tuZdokumentované
Čo sa naučím?

Viete použiť podmienený operátor a rozlíšiť chybu syntaxe od chyby vstupných údajov.

Kde si to vyskúšam?

Priamo nižšie v skúšobnom prostredí prehliadača.

Čo mám urobiť?

Spustite oba režimy, porovnajte pôvod ich hodnôt a potom dokončite úlohu.

Vyskúšajte CEL · pilot v prehliadači

Vyskúšajte oba spôsoby zadania hodnôt

Lokálne hodnoty môžete definovať v jednom výraze CEL alebo môžete premenné zadať ako vstup JSON. Všetko sa vykonáva vo vašom prehliadači.

Pilotná podmnožina CEL
Jeden samostatný výraz CELFunkcia cel.bind() priradí hodnote lokálny názov a vráti výsledok posledného výrazu.

cel.bind()cel.bind() je voliteľné oficiálne rozšírenie. Nie je súčasťou jadra jazyka CEL a hostiteľská aplikácia ho nemusí podporovať.

Tip: výraz spustíte aj klávesmi Ctrl/⌘ + Enter.
Výsledok

Aktívny príklad vyhodnotíte tlačidlom Spustiť CEL.

Rozsah pilotu: literály, explicitné konverzie, lokálne premenné vytvorené pomocou cel.bind(), premenné z JSON, zoznamy, mapy, prítomnosť, kolekčné makrá, základné kontroly reťazcov, časové hodnoty, aritmetika, porovnávanie, logika a podmienený operátor.

Č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

  1. 72 >= 80 vráti false.
  2. CEL vyberie výraz za znakom :.
  3. Konečný výsledok je "try again".

Vaša úloha

  1. Spustite príklad a overte vybranú vetvu.
  2. Zmeňte score na 80 a výraz spustite znova.
  3. 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šírenia cel.bind() použitého v samostatnej záložke.