CH02-L02 · základy

Reťazce, Unicode a bajty

Poskladáte text s diakritikou a odlíšite text od bajtovej reprezentácie.

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

Viete zvoliť typ string pre text a typ bytes iba vtedy, keď aplikácia potrebuje bajty.

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

Typ CEL string predstavuje text Unicode. Hodnota bytes predstavuje surové bajty a je odlišným typom; nejde o druhý zápis textu. Spájanie pomocou + vyžaduje reťazec na oboch stranách. Znaky ako Ľ a 👋 zostávajú súčasťou reťazca bez osobitnej logiky aplikácie.

Prečítajte pripravený príklad

Pravidlo v režime CEL + JSON je:

greeting + ', ' + name + ' 👋'

Jeho vstup je:

{
  "greeting": "Ahoj",
  "name": "Ľubica"
}

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. greeting poskytne prvú časť textu.
  2. Ďalšie reťazce a name sa spoja zľava doprava.
  3. Výsledkom je jeden reťazec Unicode.

Vaša úloha

  1. Spustite oba režimy.
  2. Nahraďte meno textom s vlastnou diakritikou.
  3. V režime Iba CEL spustite type(bytes('CEL')) == bytes.

Očakávané pozorovanie: Pozdrav zachová znaky Unicode a kontrola typu bytes() vráti true.

Častá chyba

Nepoužívajte bytes iba preto, že text sa neskôr uloží alebo odošle. Použite ho vtedy, keď hostiteľské rozhranie očakáva postupnosť bajtov.

Zobraziť vysvetlenie

Nie. Sú to odlišné typy a vyžadujú podporovanú explicitnú konverziu.

Kontrolná otázka

Dá sa hodnota bytes priamo spojiť s hodnotou string?

Hlavná myšlienka

Pre text určený ľuďom používajte string. Typ bytes má samostatný účel.

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.