Rutas
/
Gleam
Gleam
/
Ejercicios
/
Niveles de registro
Niveles de registro

Niveles de registro

Ejercicio de aprendizaje

Introducción

Cadenas de caracteres

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"
  }
}

Instrucciones

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:

  • INFO
  • WARNING
  • ERROR

Tienes tres tareas, y cada una recibe una línea de registro y te pide que hagas algo con ella.

1. Obtén el mensaje de una línea de registro

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"

2. Obtén el nivel de registro de una línea de registro

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"

3. Reformatea una línea de registro

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)"
Editar en GitHub El enlace se abre en una ventana o pestaña nueva
Gleam Exercism

¿Listo para empezar Niveles de registro?

Regístrate en Exercism para aprender y dominar Gleam con 33 conceptos122 ejercicios y mentoría humana real, todo gratis.