pub type Season {
Spring
Summer
Autumn
Winter
}
pub fn main() {
io.debug(weather(Spring))
io.debug(weather(Autumn))
}
fn weather(season: Season) -> String {
case season {
Spring -> "Mild"
Summer -> "Hot"
Autumn -> "Windy"
Winter -> "Cold"
}
}
Gleam tiene algunos tipos integrados como Int y String, pero los tipos personalizados permiten la creación de tipos completamente nuevos.
Un tipo personalizado se define con la palabra clave type seguida del nombre del tipo y un constructor para cada variante del tipo. Tanto el nombre del tipo como los nombres de los constructores comienzan con letras mayúsculas.
Las variantes de tipos personalizados pueden coincidir con patrones utilizando una expresión de caso.