Ένα ψευδώνυμο τύπου μπορεί να χρησιμοποιηθεί στη Gleam για να δώσει ένα βολικό όνομα σε έναν υπάρχοντα τύπο που διαφορετικά θα ήταν δύσκολο να γραφτεί.
pub type Headers =
List(#(String, String))
pub fn html_headers() -> Headers {
[
#("content-type", "text/html"),
#("x-frame-options", "DENY"),
]
}
Όταν γράφεται με pub type, το ψευδώνυμο μπορεί να χρησιμοποιηθεί εκτός του αρθρώματος στο οποίο ορίζεται. Αν παραλειφθεί το pub, τότε το ψευδώνυμο είναι ιδιωτικό και δεν μπορεί να γίνει αναφορά σε αυτό από άλλα αρθρώματα.
Τα λεξικά στη Gleam είναι η δομή δεδομένων για την αποθήκευση πληροφοριών σε ζεύγη κλειδιού-τιμής. Σε άλλες γλώσσες, αυτά μπορεί επίσης να είναι γνωστά ως συνειρμικοί πίνακες, κατακερματισμοί ή λεξικά.
Οποιοσδήποτε τύπος μπορεί να χρησιμοποιηθεί για τα κλειδιά και τις τιμές σε ένα λεξικό, και δεν εγγυώνται τη σειρά των καταχωρήσεών τους όταν προσπελαύνονται ή επιστρέφονται.
Τα λεξικά δημιουργούνται και χειρίζονται χρησιμοποιώντας συναρτήσεις από το άρθρωμα gleam/dict.
// 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")
Σε αυτή την άσκηση, υλοποιείς έναν τρόπο να παρακολουθείς τα υψηλά σκορ για το πιο δημοφιλές παιχνίδι στην τοπική σου αίθουσα παιχνιδιών.
Έχεις 5 συναρτήσεις να υλοποιήσεις, που σχετίζονται κυρίως με τον χειρισμό ενός αντικειμένου που περιέχει υψηλά σκορ.
Δημιούργησε μια συνάρτηση create_score_board που επιστρέφει ένα dict που χρησιμεύει ως πίνακας υψηλών σκορ.
Τα κλειδιά αυτού του αντικειμένου θα είναι τα ονόματα των παικτών, οι τιμές θα είναι τα σκορ τους.
Για τις ανάγκες των τεστ, θέλεις να συμπεριλάβεις απευθείας μία καταχώριση στο αντικείμενο.
Αυτή η αρχική καταχώριση θα πρέπει να αποτελείται από το "The Best Ever" ως όνομα παίκτη και το 1_000_000 ως σκορ.
create_score_board()
// returns an object with one initial entry
Για να προσθέσεις έναν παίκτη στον πίνακα υψηλών σκορ, όρισε τη συνάρτηση add_player.
Δέχεται 3 παραμέτρους:
Η συνάρτηση επιστρέφει ένα dict στο οποίο έχουν προστεθεί ο νέος παίκτης και το σκορ.
Αν οι παίκτες παραβιάσουν τους κανόνες της αίθουσας παιχνιδιών, αφαιρούνται χειροκίνητα από τον πίνακα υψηλών σκορ.
Όρισε τη συνάρτηση remove_player που παίρνει 2 παραμέτρους:
Αυτή η συνάρτηση θα πρέπει να επιστρέφει το dict χωρίς τον παίκτη που αφαιρέθηκε.
Αν ο παίκτης δεν ήταν εξαρχής στον πίνακα, δεν θα πρέπει να αλλάξει τίποτα στον πίνακα, θα πρέπει να επιστραφεί ως έχει.
Αν ένας παίκτης τελειώσει άλλο ένα παιχνίδι στην αίθουσα παιχνιδιών, ένα συγκεκριμένο ποσό πόντων θα προστεθεί στο προηγούμενο σκορ του πίνακα.
Υλοποίησε τη συνάρτηση update_score, που παίρνει 3 παραμέτρους:
Η συνάρτηση θα πρέπει να επιστρέφει ένα dict με το ενημερωμένο σκορ.
Αν ο παίκτης δεν ήταν εξαρχής στον πίνακα, δεν θα πρέπει να αλλάξει τίποτα στον πίνακα, θα πρέπει να επιστραφεί ως έχει.
Η αίθουσα παιχνιδιών κρατά έναν ξεχωριστό πίνακα σκορ τις Δευτέρες. Στο τέλος της ημέρας, κάθε παίκτης σε αυτόν τον πίνακα παίρνει 100 επιπλέον πόντους.
Υλοποίησε τη συνάρτηση apply_monday_bonus που δέχεται έναν πίνακα σκορ.
Η συνάρτηση επιστρέφει ένα dict με τους πόντους μπόνους προστιθέμενους για κάθε παίκτη που αναγράφεται σε αυτόν τον πίνακα.
Γράψου στο Exercism για να μάθεις και να κατακτήσεις Gleam με 33 έννοιες122 ασκήσεις και πραγματική καθοδήγηση από ανθρώπους, όλα δωρεάν.