CH03-L02 · základy

Mapy a prístup k položkám

Prečítate hodnotu bodkovým zápisom aj pomocou hranatých zátvoriek.

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

Viete vybrať vhodný zápis pre pevný názov položky mapy.

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

Mapa priraďuje kľúčom hodnoty. Bodkový zápis, napríklad user.name, je stručný pri pevnom kľúči zapísateľnom ako identifikátor. Zápis user["role"] v hranatých zátvorkách ukazuje kľúč explicitne. Oba zápisy čítajú existujúcu hodnotu; chýbajúci kľúč sa potichu nenahradí.

Prečítajte pripravený príklad

Pravidlo v režime CEL + JSON je:

user.name + ' / ' + user['role']

Jeho vstup je:

{
  "user": {
    "name": "Maya",
    "role": "editor"
  }
}

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. user.name prečíta "Maya".
  2. user["role"] prečíta "editor".
  3. Spojenie reťazcov vráti "Maya / editor".

Vaša úloha

  1. Spustite oba režimy.
  2. Zmeňte hodnotu roly a overte zmenu výsledku.
  3. Nahraďte role vo výraze za missing a pozrite si chybu.

Očakávané pozorovanie: Existujúce kľúče vrátia hodnoty; neprítomný kľúč spôsobí chybu nedostupnej položky.

Častá chyba

Bodka tu neznamená objektovo orientované volanie. Je to pohodlný výber poľa alebo kľúča mapy.

Zobraziť vysvetlenie

Keď je kľúč zapísaný ako reťazec alebo ho nemožno vyjadriť jednoduchým identifikátorom.

Kontrolná otázka

Kedy je zápis v hranatých zátvorkách obzvlášť užitočný?

Hlavná myšlienka

Mapy sú kolekcie kľúčov a hodnôt. Zvoľte jasný spôsob prístupu a nepredpokladajte náhradnú hodnotu.

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.