Tracks
/
Gleam
Gleam
/
Ejercicios
/
Niveles de registro
Niveles de registro

Niveles de registro

Ejercicio de aprendizaje

Introducción

Strings

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

Instrucciones

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:

  • INFO
  • WARNING
  • ERROR

Tienes tres tareas, y cada una de ellas recibirá una línea de log y te pedirá que hagas algo con ella.

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

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"

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

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"

3. Reformatea una línea de log

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

¿Todo 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.