Č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
Prítomnosť a hodnota sú dve odlišné otázky. has(user.email) overí existenciu vybranej položky bez toho, aby ju najprv čítal. Ak položka chýba, podmienený operátor vyberie náhradný text. Položka s hodnotou null je stále prítomná.
Prečítajte pripravený príklad
Pravidlo v režime CEL + JSON je:
has(user.email) ? user.email : 'not provided'Jeho vstup je:
{
"user": {
"name": "Maya"
}
}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
- Mapa
usernemá kľúčemail. has(user.email)vrátifalse.- Podmienený výraz vráti
"not provided".
Vaša úloha
- Spustite pôvodný príklad.
- Pridajte do mapy alebo JSON položku
"email": "maya@example.test". - Potom nastavte e-mail na
nulla overte, že samotná prítomnosť nezaručuje reťazec.
Očakávané pozorovanie: Pridaný e-mail sa vráti; prítomná hodnota null môže vyžadovať ďalšiu kontrolu.
Častá chyba
Výraz user.email != null číta položku skôr, než dokáže jej existenciu. Ak prítomnosť nie je istá, použite has().
Zobraziť vysvetlenie
Nie. Potvrdzuje iba prítomnosť položky.
Kontrolná otázka
Potvrdzuje has(user.email), že e-mail je neprázdny text?
Hlavná myšlienka
Pred čítaním overte prítomnosť a obsah hodnoty kontrolujte samostatne.
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.