Tracks
/
F#
F#
/
Übungen
/
Log-Level
Log-Level

Log-Level

Lernübung

Einführung

Strings

Ein String (Zeichenkette), in F# als string geschrieben, ist ein Objekt, das unveränderlichen Text als Folge von Unicode-Zeichen (Buchstaben, Ziffern, Satzzeichen usw.) darstellt und wie folgt definiert wird:

let fruit = "Apple"

Strings werden manipuliert, indem du entweder die Methoden des Strings aufrufst oder die Funktionen des String-Moduls verwendest. Sobald ein String erstellt wurde, kann sich sein Wert nie mehr ändern. Alle Methoden oder Funktionen, die einen String zu verändern scheinen, geben in Wirklichkeit einen neuen String zurück.

Strings lassen sich auf verschiedene Weise verketten oder formatieren.

  • Du kannst den +-Operator zum Verketten verwenden:
let sentence = "Apple" + " is a type of fruit."
  • Du kannst die Funktion sprintf zum Formatieren von Text verwenden. Dabei hast du Platzhalter in einem Formattext (%s für einen string) und übergibst die Werte als Argumente:
let sentence = sprintf "%s is a type of %s." "Apple" "fruit"

Anleitung

In dieser Übung verarbeitest du Logzeilen.

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

Es gibt drei verschiedene Log-Level:

  • INFO
  • WARNING
  • ERROR

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

1. Nachricht aus einer Logzeile holen

Implementiere die Funktion message, die die Nachricht einer Logzeile zurückgibt:

message "[ERROR]: Invalid operation"
// => "Invalid operation"

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

message "[WARNING]:  Disk almost full\r\n"
// => "Disk almost full"

2. Log-Level aus einer Logzeile holen

Implementiere die Funktion logLevel, die das Log-Level einer Logzeile zurückgibt, und zwar in Kleinbuchstaben:

logLevel "[ERROR]: Invalid operation"
// => "error"

3. Eine Logzeile neu formatieren

Implementiere die Funktion reformat, die die Logzeile neu formatiert: erst die Nachricht, danach das Log-Level in runden Klammern:

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

Bereit, mit Log-Level zu starten?

Melde dich bei Exercism an, um F# mit 18 Konzepte148 Übungen und echtem menschlichen Mentoring zu lernen und zu meistern, alles kostenlos.