Č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
CEL poskytuje číselné typy int, uint a double; aritmetika vyžaduje zhodné typy. JSON má iba všeobecný zápis čísla, preto toto cvičisko mapuje čísla JSON na CEL double. Samostatný príklad preto pri hodnote 12.5 používa 3.0, nie 3. Celočíselné delenie odstráni desatinnú časť smerom k nule, kým delenie typu double ju zachová.
Prečítajte pripravený príklad
Pravidlo v režime CEL + JSON je:
price * quantity - discountJeho vstup je:
{
"price": 12.5,
"quantity": 3,
"discount": 3
}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
12.5 * 3.0vytvorí37.5.37.5 - 3.0vytvorí34.5.- Konečný typ je
double.
Vaša úloha
- Spustite oba režimy a potvrďte výsledok
34.5. - V režime Iba CEL skúste
7 / 2. - Potom skúste
7.0 / 2.0a výsledky porovnajte.
Očakávané pozorovanie: 7 / 2 vráti 3; 7.0 / 2.0 vráti 3.5.
Častá chyba
Zápis 12.5 * 3 mieša typy double a int. CEL vyžaduje explicitné rozhodnutie a jeden operand automaticky nerozšíri.
Zobraziť vysvetlenie
Takýto zápis vytvorí typ double, ktorý sa zhoduje s cenou a zľavou.
Kontrolná otázka
Prečo je množstvo v samostatnom príklade zapísané ako 3.0?
Hlavná myšlienka
Číselný typ zvoľte vedome, operandy aritmetiky udržujte kompatibilné a konvertujte iba na hranici údajov.
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.