Tracks
/
Gleam
Gleam
/
Übungen
/
Log-Level
Log-Level

Log-Level

Lernübung

Einführung

Strings

Strings (Zeichenketten) in Gleam sind unveränderbarer Text, der von doppelten Anführungszeichen umgeben ist. Sie unterstützen Unicode-Zeichen und können mehrzeilig sein.

let greeting = "Hello, Joe! 📞"

let multi_line_string = "one
two
three"

Strings lassen sich mit dem Operator <> verknüpfen:

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

Das Modul gleam/string in der Standardbibliothek enthält Funktionen, mit denen du mit Strings arbeiten kannst.

In case-Ausdrücken kannst du Strings mit Mustern abgleichen:

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

Wenn du den Anfang eines Strings abgleichen und den Rest einer Variable zuweisen möchtest, kannst du das Muster mit dem Operator <> verwenden:

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

Anleitung

In dieser Übung verarbeitest du Log-Zeilen.

Jede Log-Zeile ist ein String mit folgendem Format: "[<LEVEL>]: <MESSAGE>".

Es gibt drei verschiedene Log-Level:

  • INFO
  • WARNING
  • ERROR

Du hast drei Aufgaben. Jede bekommt eine Log-Zeile und verlangt, dass du etwas damit machst.

1. Nachricht aus einer Log-Zeile holen

Implementiere die Funktion message, die die Nachricht einer Log-Zeile zurückgibt:

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

Führende oder abschließende Leerzeichen sollen entfernt werden:

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

2. Log-Level aus einer Log-Zeile holen

Implementiere die Funktion log_level, die das Log-Level einer Log-Zeile zurückgibt. Es soll in Kleinbuchstaben zurückgegeben werden:

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

3. Eine Log-Zeile umformatieren

Implementiere die Funktion reformat, die die Log-Zeile umformatiert: zuerst die Nachricht, danach das Log-Level in Klammern:

reformat("[INFO]: Operation completed")
// -> "Operation completed (info)"
Über GitHub bearbeiten Der Link öffnet sich in einem neuen Fenster oder Tab
Gleam Exercism

Bereit, mit Log-Level zu starten?

Melde dich bei Exercism an, um Gleam mit 33 Konzepte122 Übungen und echtem menschlichen Mentoring zu lernen und zu meistern, alles kostenlos.