Kurzusok
/
Gleam
Gleam
/
Tanterv
/
Átlátszatlan típusok
Át

Átlátszatlan típusok ebben a kurzusban: Gleam

4 feladat

A(z) Átlátszatlan típusok fogalomról

A Gleam opaque típusai olyan egyedi típusok, amelyeknél csak az a modul tud ilyen típusú értékeket létrehozni vagy rájuk mintát illeszteni, amelyik magát a típust definiálja. Ez akkor hasznos, ha olyan típust szeretnénk létrehozni, amelyet csak egy meghatározott módon lehet használni.

Az opaque típusokat az opaque kulcsszóval definiáljuk.

pub opaque type PositiveInt {
  PositiveInt(inner: Int)
}

Ezt a PositiveInt típust olyan helyzetekben érdemes használni, ahol egész számra van szükség, de az csak nulla vagy annál nagyobb lehet. Egy hétköznapi Gleam Int-et nem lehet erre használni, mert azok negatívak is lehetnek.

Az a modul, amelyik ezt a típust definiálja, definiálhat egy függvényt a belső egész szám kiolvasására, és egy függvényt a PositiveInt létrehozására, amely hibát ad vissza, ha az érték nem pozitív.

pub fn from_int(i: Int) -> Result(PositiveInt, String) {
  case i {
    _ if i < 0 -> Error("Value must be positive")
    _ -> Ok(PositiveInt(i))
  }
}

pub fn to_int(i: PositiveInt) -> Int {
  i.inner
}

Ezzel az API-val más modulok nem tudnak negatív értékű PositiveInt-et létrehozni, így minden olyan függvény, amely PositiveInt-et kap, biztos lehet benne, hogy az érték pozitív.

Szerkesztés GitHubon A hivatkozás új ablakban vagy lapon nyílik meg

Tanuld meg a(z) Átlátszatlan típusok fogalmat

A gyakorlás zárolva

Oldj fel még 1 feladatot, hogy gyakorolhasd a(z) Átlátszatlan típusok fogalmat