CH04-L02 · praktické použitie

Začiatok, koniec a obsah textu

Skontrolujete tri konkrétne vlastnosti jedného reťazca.

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

Viete vybrať startsWith(), endsWith() alebo contains() podľa presného významu pravidla.

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

startsWith(), endsWith() a contains() odpovedajú na rozdielne otázky. Príklad vyžaduje cestu pod docs/, príponu Markdown a presný fragment /guide. Tieto kontroly rozlišujú veľkosť písmen a neupravujú oddeľovače ciest.

Prečítajte pripravený príklad

Pravidlo v režime CEL + JSON je:

path.startsWith('docs/') && path.endsWith('.md') && path.contains('/guide')

Jeho vstup je:

{
  "path": "docs/cel/guide.md"
}

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. Kontrola začiatku je pravdivá.
  2. Kontrola konca aj obsiahnutého fragmentu je tiež pravdivá.
  3. Tri logické hodnoty spojené pomocou && vrátia true.

Vaša úloha

  1. Spustite príklad.
  2. Zmeňte .md na .txt a určte, ktorá kontrola zlyhala.
  3. Zmeňte guide na Guide a overte rozlišovanie veľkosti písmen.

Očakávané pozorovanie: Každá zmena spôsobí výsledok false z konkrétneho a vysvetliteľného dôvodu.

Častá chyba

Jasnú kontrolu začiatku alebo konca nenahrádzajte regulárnym výrazom, ak pravidlo skutočne nepotrebuje vzor.

Zobraziť vysvetlenie

Nie. Dokazuje iba výskyt fragmentu niekde v reťazci.

Kontrolná otázka

Dokazuje contains("docs"), že cesta začína v priečinku docs/?

Hlavná myšlienka

Vyberte textovú metódu, ktorá presne pomenúva otázku; jednoduché kontroly sa ľahšie revidujú.

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.