Track
/
Gleam
Gleam
/
Esercizi
/
Livelli di log
Livelli di log

Livelli di log

Esercizio di apprendimento

Introduzione

Stringhe

Le stringhe in Gleam sono testo immutabile racchiuso tra virgolette doppie. Supportano i caratteri unicode e possono essere sviluppate su più righe.

let greeting = "Hello, Joe! 📞"

let multi_line_string = "one
two
three"

Le stringhe si possono unire tra loro con l'operatore <>:

let name = "Mike"
"Hello, " <> name <> "!"
// -> "Hello, Mike!"

Il modulo gleam/string della libreria standard fornisce funzioni per lavorare con le stringhe.

Nelle espressioni case si può fare pattern matching sulle stringhe:

pub fn on_an_excellent_adventure(name: String) -> Bool {
  case name {
    "Bill" -> True
    "Ted" -> True
    _ -> False
  }
}

Se vuoi fare pattern matching sull'inizio di una stringa e assegnare il resto a una variabile, puoi usare il pattern con l'operatore <>:

pub fn profession(name: String) -> String {
  case name {
    "Dr " <> rest -> rest <> " is a doctor"
    _ -> "I'm not sure what " <> name <> " does"
  }
}

Istruzioni

In questo esercizio elaborerai delle righe di log.

Ogni riga di log è una stringa formattata così: "[<LEVEL>]: <MESSAGE>".

Ci sono tre livelli di log diversi:

  • INFO
  • WARNING
  • ERROR

Hai tre attività, ognuna delle quali riceverà una riga di log e ti chiederà di fare qualcosa con essa.

1. Ottenere il messaggio da una riga di log

Implementa la funzione message per restituire il messaggio di una riga di log:

message("[ERROR]: Invalid operation")
// -> "Invalid operation"

Gli spazi bianchi all'inizio e alla fine vanno rimossi:

message("[WARNING]:  Disk almost full\r\n")
// -> "Disk almost full"

2. Ottenere il livello di log da una riga di log

Implementa la funzione log_level per restituire il livello di log di una riga di log, che va restituito in minuscolo:

log_level("[ERROR]: Invalid operation")
// -> "error"

3. Riformattare una riga di log

Implementa la funzione reformat che riformatta la riga di log, mettendo prima il messaggio e poi il livello di log tra parentesi:

reformat("[INFO]: Operation completed")
// -> "Operation completed (info)"
Modifica tramite GitHub Il link si apre in una nuova finestra o scheda
Gleam Exercism

Vuoi iniziare Livelli di log?

Iscriviti a Exercism per imparare e padroneggiare Gleam con 33 concetti122 esercizi e il mentoring di persone reali, tutto gratis.