Tracce
/
Gleam
Gleam
/
Programma
/
Tipi opachi
Ti

Tipi opachi in Gleam

4 esercizi

Informazioni su Tipi opachi

In Gleam, i tipi opachi sono tipi personalizzati in cui solo il modulo che definisce il tipo può costruire valori di quel tipo o fare pattern matching su di essi. Sono utili per creare tipi che vanno usati solo in un modo specifico.

I tipi opachi si definiscono con la parola chiave opaque.

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

Il tipo PositiveInt serve nelle situazioni in cui si vuole un int, ma questo deve essere maggiore o uguale a zero. Un normale Int di Gleam non andrebbe bene, perché può anche essere negativo.

Il modulo che definisce questo tipo può definire una funzione per ottenere il valore int interno e una funzione per creare il tipo PositiveInt, che restituirà un errore se il valore non è positivo.

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
}

Con questa API, gli altri moduli non possono costruire un PositiveInt con un valore negativo, quindi ogni funzione che accetta un PositiveInt può essere sicura che il valore sia positivo.

Modifica tramite GitHub Il collegamento si apre in una nuova finestra o scheda

Impara Tipi opachi

La pratica è bloccata

Sblocca un altro esercizio per esercitarti su Tipi opachi