Los strings en Gleam son texto inmutable rodeado de comillas dobles. Admiten caracteres unicode y pueden ocupar varias líneas.
let greeting = "Hello, Joe! 📞"
let multi_line_string = "one
two
three"
Los strings se pueden unir con el operador <>:
let name = "Mike"
"Hello, " <> name <> "!"
// -> "Hello, Mike!"
El módulo gleam/string de la biblioteca estándar proporciona funciones para trabajar con strings.
Se puede hacer coincidir strings en expresiones case:
pub fn on_an_excellent_adventure(name: String) -> Bool {
case name {
"Bill" -> True
"Ted" -> True
_ -> False
}
}
Si quieres hacer coincidir el principio de un string y asignar el resto a una variable, puedes usar el patrón del operador <>:
pub fn profession(name: String) -> String {
case name {
"Dr " <> rest -> rest <> " is a doctor"
_ -> "I'm not sure what " <> name <> " does"
}
}
En este ejercicio vas a procesar líneas de registro.
Cada línea de registro es un string con el siguiente formato: "[<LEVEL>]: <MESSAGE>".
Hay tres niveles de registro diferentes:
INFOWARNINGERRORTienes tres tareas, y cada una recibe una línea de registro y te pide que hagas algo con ella.
Implementa la función message para que devuelva el mensaje de una línea de registro:
message("[ERROR]: Invalid operation")
// -> "Invalid operation"
Hay que eliminar los espacios en blanco al principio y al final:
message("[WARNING]: Disk almost full\r\n")
// -> "Disk almost full"
Implementa la función log_level para que devuelva el nivel de registro de una línea de registro, en minúsculas:
log_level("[ERROR]: Invalid operation")
// -> "error"
Implementa la función reformat, que reformatea la línea de registro colocando primero el mensaje y después el nivel de registro entre paréntesis:
reformat("[INFO]: Operation completed")
// -> "Operation completed (info)"
Regístrate en Exercism para aprender y dominar Gleam con 33 conceptos122 ejercicios y mentoría humana real, todo gratis.