CH06-L02 · praktické použitie

Porovnávanie času

Overíte, či prijatá udalosť neprekročila termín.

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

Viete porovnávať normalizované časové hodnoty namiesto nespoľahlivého porovnávania textu.

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

Výraz pred porovnaním prevedie oba vstupy na časové pečiatky. Porovnáva tak okamihy vrátane ich posunu UTC, nie iba zápis reťazcov. Operátor <= prijme udalosť presne v termíne aj udalosť pred termínom.

Prečítajte pripravený príklad

Pravidlo v režime CEL + JSON je:

timestamp(receivedAt) <= timestamp(deadline)

Jeho vstup je:

{
  "receivedAt": "2026-07-23T09:15:00Z",
  "deadline": "2026-07-23T10:00:00Z"
}

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. Oba reťazce RFC 3339 sa spracujú.
  2. 09:15Z nastane pred 10:00Z.
  3. Porovnanie vráti true.

Vaša úloha

  1. Spustite príklad splneného termínu.
  2. Posuňte receivedAt na 10:01:00Z.
  3. Nastavte ho presne na termín a vysvetlite výsledok.

Očakávané pozorovanie: 10:01 je po termíne a vráti false; presne 10:00 vráti true, pretože sa používa <=.

Častá chyba

Poradie reťazcov nenahrádza spracovanie času, ak sa môžu líšiť posuny alebo formát.

Zobraziť vysvetlenie

Nie. Ak sa rovnosť považuje za splnenie termínu, použite <=.

Kontrolná otázka

Prijal by operátor < udalosť presne v termíne?

Hlavná myšlienka

Porovnávajte spracované časové pečiatky a hraničný operátor zvoľte vedome.

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.