Ein Typalias kann in Gleam verwendet werden, um einem bereits existierenden Typ einen praktischen Namen zu geben, der sonst umständlich zu schreiben wäre.
pub type Headers =
List(#(String, String))
pub fn html_headers() -> Headers {
[
#("content-type", "text/html"),
#("x-frame-options", "DENY"),
]
}
Wenn man den Alias mit pub type schreibt, kann man ihn auch außerhalb des Moduls verwenden, in dem er definiert ist. Lässt man pub weg, ist der Alias privat und kann in anderen Modulen nicht verwendet werden.
Dicts sind in Gleam die Datenstruktur, um Informationen in Schlüssel-Wert-Paaren zu speichern. In anderen Sprachen kennt man sie vielleicht auch als assoziative Arrays, Hashes oder Wörterbücher.
Für die Schlüssel und Werte eines Dicts kann jeder beliebige Typ verwendet werden, und die Reihenfolge der Einträge ist nicht garantiert, wenn man auf sie zugreift oder sie zurückgibt.
Dicts werden mit Funktionen aus dem Modul gleam/dict erstellt und bearbeitet.
// Create an empty dict
let dict1 = dict.new()
// Create a dict with some values
let dict2 = dict.from_list([
#("name", "Gleam"),
#("colour", "Pink"),
])
// Add a value to a dict
let dict3 = dict.insert(dict2, "website", "https://gleam.run")
// Get a value from a dict
let name = dict.get(dict3, "name")
// -> Ok("Gleam")
In dieser Übung implementierst du eine Möglichkeit, die Bestenliste für das beliebteste Spiel in deiner örtlichen Spielhalle im Blick zu behalten.
Du sollst 5 Funktionen implementieren, die sich größtenteils darum drehen, ein Objekt zu bearbeiten, das die Bestenliste speichert.
Erstelle eine Funktion create_score_board, die ein Wörterbuch zurückgibt, das als Bestenliste dient.
Die Schlüssel dieses Objekts sind die Namen der Spieler, die Werte sind ihre Punktzahlen.
Zu Testzwecken sollst du direkt einen Eintrag in das Objekt aufnehmen.
Dieser anfängliche Eintrag sollte aus "The Best Ever" als Spielernamen und 1_000_000 als Punktzahl bestehen.
create_score_board()
// returns an object with one initial entry
Um einen Spieler zur Bestenliste hinzuzufügen, definiere die Funktion add_player.
Sie akzeptiert 3 Parameter:
Die Funktion gibt das Wörterbuch mit dem neuen Spieler und seiner Punktzahl zurück.
Wenn Spieler gegen die Regeln der Spielhalle verstoßen, werden sie manuell aus der Bestenliste entfernt.
Definiere remove_player, die 2 Parameter entgegennimmt:
Diese Funktion sollte das Wörterbuch ohne den Spieler zurückgeben, der entfernt wurde.
Wenn der Spieler gar nicht auf der Bestenliste stand, sollte sich an der Bestenliste nichts ändern, sie sollte unverändert zurückgegeben werden.
Wenn ein Spieler in der Spielhalle ein weiteres Spiel beendet, wird eine bestimmte Anzahl Punkte zur bisherigen Punktzahl auf der Bestenliste addiert.
Implementiere update_score, die 3 Parameter entgegennimmt:
Die Funktion sollte das Wörterbuch mit der aktualisierten Punktzahl zurückgeben.
Wenn der Spieler gar nicht auf der Bestenliste stand, sollte sich an der Bestenliste nichts ändern, sie sollte unverändert zurückgegeben werden.
Die Spielhalle führt montags eine separate Bestenliste. Am Ende des Tages bekommt jeder Spieler auf dieser Bestenliste 100 zusätzliche Punkte.
Implementiere die Funktion apply_monday_bonus, die eine Bestenliste entgegennimmt.
Die Funktion gibt das Wörterbuch zurück, in dem für jeden Spieler auf dieser Bestenliste die Bonuspunkte hinzugefügt wurden.
Melde dich bei Exercism an, um Gleam mit 33 Konzepte122 Übungen und echtem menschlichen Mentoring zu lernen und zu meistern, alles kostenlos.