CH02-L04 · základy

Poradie operácií a zátvorky

Zmeníte poradie výpočtu zátvorkami a porovnáte dva rozdielne výsledky.

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

Viete použiť zátvorky na jasné vyjadrenie zamýšľaného poradia operácií.

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

Priorita operátorov určuje, ktorá operácia sa vykoná skôr, ale zátvorky ukážu zamýšľané zoskupenie aj čitateľovi. Výraz (subtotal - discount) * taxRate odpočíta zľavu pred násobením. Výraz subtotal - discount * taxRate najprv násobí, a preto opisuje iný výpočet.

Prečítajte pripravený príklad

Pravidlo v režime CEL + JSON je:

(subtotal - discount) * taxRate

Jeho vstup je:

{
  "subtotal": 100,
  "discount": 10,
  "taxRate": 1.2
}

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. Zátvorky vytvoria 100.0 - 10.0 = 90.0.
  2. 90.0 * 1.2 vytvorí 108.0.
  3. Výraz vráti vypočítaný súčet.

Vaša úloha

  1. Spustite pôvodný výraz.
  2. Odstráňte zátvorky a spustite subtotal - discount * taxRate.
  3. Vysvetlite výsledok 88.0 a potom pôvodný výraz obnovte.

Očakávané pozorovanie: Pôvodný výraz vráti 108.0; alternatíva bez zátvoriek vráti 88.0.

Častá chyba

Zátvorky nepridávajte náhodne. Zoskupte operácie podľa výpočtu, ktorý viete povedať jednoduchou vetou.

Zobraziť vysvetlenie

Ako prvé sa vykoná odčítanie v zátvorkách.

Kontrolná otázka

Ktorá operácia sa v pôvodnom výraze vykoná ako prvá?

Hlavná myšlienka

Zátvorkami komunikujte význam výpočtu, nie iba požiadavku parsera.

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.