Č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) * taxRateJeho 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
- Zátvorky vytvoria
100.0 - 10.0 = 90.0. 90.0 * 1.2vytvorí108.0.- Výraz vráti vypočítaný súčet.
Vaša úloha
- Spustite pôvodný výraz.
- Odstráňte zátvorky a spustite
subtotal - discount * taxRate. - Vysvetlite výsledok
88.0a 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šíreniacel.bind()použitého v samostatnej záložke.