Los strings, o cadenas, en Gleam son texto inmutable rodeado de comillas dobles. Admiten caracteres unicode y pueden abarcar varias líneas.
let greeting = "Hello, Joe! 📞"
let multi_line_string = "one
two
three"
Los strings se pueden unir entre sí con el operador <>:
let name = "Mike"
"Hello, " <> name <> "!"
// -> "Hello, Mike!"
El módulo gleam/string de la biblioteca estándar incluye funciones para trabajar con strings.
Puedes 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 log.
Cada línea de log es un string con el siguiente formato: "[<LEVEL>]: <MESSAGE>".
Hay tres niveles de log diferentes:
INFOWARNINGERRORTienes tres tareas, y cada una de ellas recibirá una línea de log y te pedirá que hagas algo con ella.
Implementa la función message para devolver el mensaje de una línea de log:
message("[ERROR]: Invalid operation")
// -> "Invalid operation"
Cualquier espacio en blanco al principio o al final debe eliminarse:
message("[WARNING]: Disk almost full\r\n")
// -> "Disk almost full"
Implementa la función log_level para devolver el nivel de log de una línea de log, que se debe devolver en minúsculas:
log_level("[ERROR]: Invalid operation")
// -> "error"
Implementa la función reformat, que reformatea la línea de log poniendo el mensaje primero y el nivel de log después, 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.