Kurzusok
/
Gleam
Gleam
/
Feladatok
/
Tavaszi nagytakarítás
Tavaszi nagytakarítás

Tavaszi nagytakarítás

Tanulófeladat

Bevezetés

A let assert állítások

Amikor Gleamben egy értékre illesztünk mintát, biztosítanunk kell, hogy a minták a típus minden lehetséges értékét lefedjék, különben a kód nem fordul le.

Ezt a függvényt el kell utasítani, mert nem kezeli azt az esetet, amikor a lista üres:

pub fn get_first_element_or_crash(items: List(e)) -> e {
  case items {
    [item, ..] -> item
  }
}

A Gleam-programokban a legtöbbször minden lehetséges esetet kezelni akarunk, de néhány programban, például prototípusokban és gyors szkriptekben, előfordulhat, hogy csak a happy pathra akarunk összpontosítani, és nem írunk kódot a többi esetre. Itt jön képbe a Gleam let assert konstrukciója.

A let assert állításokkal egy minta a típusnak csak néhány lehetséges értékére illeszkedhet, és ha a minta nem illeszkedik egy értékre, a program összeomlik. A let assert használatával a fenti függvényt így írhatjuk meg:

pub fn get_first_element_or_crash(items: List(e)) -> e {
  let assert [item, ..] = items
  item
}

A Gleam-könyvtáraknak soha nem szabad let assert állításokat használniuk, mert azok összeomlaszthatják a programot. Ehelyett a Result típust kell használniuk, és hagyniuk kell, hogy az alkalmazás fejlesztője döntse el, hogyan kezelje a hibákat.

Utasítások

Mikát, a rendezvényszervezőt előléptették a munkahelyén, és új feladatai részeként ő felel a rendezvények adatbázisáért. Gyorsan észrevette, hogy rengeteg adatot olyan formában tárolnak, amivel nehéz dolgozni, ezért összefogtok, hogy egy egyszeri szkripttel kitakarítsátok. Mivel a szkriptet csak egyszer fogjátok lefuttatni, és biztos vagy az adatok szerkezetében, úgy gondolod, hogy ez jó hely a Gleam let-állításainak a használatára.

1. Hibák kinyerése

Minden korábbi rendezvényhez tartozik egy lista az esemény során felmerült problémákról. Ezeket eredményként tárolták, de mindig az Error változatban. Készítsd el az extract_error függvényt, amely egy olyan eredményt vesz át, amelyről feltételezzük, hogy mindig Error, és visszaadja a benne lévő hibaértéket.

extract_error(Error("Not enough coffee"))
// -> "Not enough coffee"

2. Csapatelőtag eltávolítása

A csapatnevek elé a „Team ” szó került, de erre nincs szükség. Készítsd el a remove_team_prefix függvényt, amely eltávolítja az előtagot a csapatnévből.

remove_team_prefix("Team Turtle")
// -> "Turtle"

3. Régió és csapat szétválasztása

Minden rendezvényt egy csapat szervez, és minden csapat egy régióhoz tartozik. Az adatbázisban egyetlen stringben tárolják őket, vesszővel elválasztva. Készítsd el a split_region_and_team függvényt, amely két stringből álló tuple-re bontja a stringet: az egyik a régió, a másik a csapat. A „Team ” előtagot el kell távolítani a csapatnévből.

split_region_and_team("East,Team Orange")
// -> #("East", "Orange")
Szerkesztés GitHubon A hivatkozás új ablakban vagy lapon nyílik meg
Gleam Exercism

Készen állsz elkezdeni a(z) Tavaszi nagytakarítás feladatot?

Iratkozz fel az Exercism-re, hogy megtanuld és elsajátítsd a(z) Gleam nyelvet 33 fogalom122 feladat segítségével, valódi emberi mentorálással, mindez ingyen.