Μερικές φορές, όταν μια συνάρτηση δέχεται πολλά ορίσματα, μπορεί να είναι δύσκολο να θυμηθείς τη σειρά με την οποία πρέπει να δοθούν. Για χάρη της αναγνωσιμότητας, η Gleam επιτρέπει να βάζεις στα ορίσματα μια ετικέτα με όνομα.
Για να βάλεις ετικέτα σε ένα όρισμα, γράψε το όνομα της ετικέτας πριν από το όνομα του ορίσματος, χωρισμένα με ένα κενό.
pub fn replace(
in string: String,
each target: String,
with replacement: String
) -> String {
// ...
}
Όταν καλείς μια συνάρτηση με ορίσματα που έχουν ετικέτες, μπορείς να δώσεις τα ορίσματα με οποιαδήποτε σειρά. Κάθε μία από αυτές τις κλήσεις στη replace είναι ισοδύναμη:
replace(in: "🍔🍔🍔", each: "🍔", with: "🍕")
replace(each: "🍔", in: "🍔🍔🍔", with: "🍕")
replace(with: "🍕", each: "🍔", in: "🍔🍔🍔")
Οι ετικέτες είναι πάντα προαιρετικές. Ακόμα κι αν μια συνάρτηση έχει ορίσματα με ετικέτες, μπορείς να την καλέσεις και χωρίς ετικέτες.
replace("🍔🍔🍔", "🍔", "🍕")
Είσαι ο διευθυντής ενός κομψού εστιατορίου που έχει ένα μεγάλο κελάρι κρασιών. Πολλοί από τους πελάτες σου είναι απαιτητικοί λάτρεις του κρασιού. Το να βρεις το σωστό μπουκάλι κρασί για έναν συγκεκριμένο πελάτη δεν είναι εύκολη υπόθεση.
Ως τεχνολογικά καταρτισμένος ιδιοκτήτης εστιατορίου, αποφάσισες να επιταχύνεις τη διαδικασία επιλογής κρασιού γράφοντας μια εφαρμογή που θα επιτρέπει στους επισκέπτες να φιλτράρουν τα κρασιά σου με βάση τις προτιμήσεις τους.
Ένα μπουκάλι κρασί αναπαρίσταται με έναν προσαρμοσμένο τύπο, και τα κρασιά αποθηκεύονται σε μια λίστα.
[
Wine("Chardonnay", 2015, "Italy", White),
Wine("Pinot grigio", 2017, "Germany", White),
Wine("Pinot noir", 2016, "France", Red),
Wine("Dornfelder", 2018, "Germany", Rose)
]
Υλοποίησε τη συνάρτηση wines_of_color. Πρέπει να παίρνει μια λίστα με κρασιά και να επιστρέφει όλα τα κρασιά ενός δεδομένου χρώματος.
wines_of_color(
[
Wine("Chardonnay", 2015, "Italy", White),
Wine("Pinot grigio", 2017, "Germany", White),
Wine("Pinot noir", 2016, "France", Red),
Wine("Dornfelder", 2018, "Germany", Rose)
],
color: White
)
// -> [
// Wine("Chardonnay", 2015, "Italy", White),
// Wine("Pinot grigio", 2017, "Germany", White),
// ]
Υλοποίησε τη συνάρτηση wines_from_country. Πρέπει να παίρνει μια λίστα με κρασιά και να επιστρέφει όλα τα κρασιά από μια δεδομένη χώρα.
wines_from_country(
[
Wine("Chardonnay", 2015, "Italy", White),
Wine("Pinot grigio", 2017, "Germany", White),
Wine("Pinot noir", 2016, "France", Red),
Wine("Dornfelder", 2018, "Germany", Rose)
],
country: "Germany"
)
// -> [
// Wine("Dornfelder", 2018, "Germany", Rose)
// ]
Υλοποίησε τη συνάρτηση filter. Πρέπει να παίρνει μια λίστα με κρασιά, ένα χρώμα και μια χώρα και να επιστρέφει όλα τα κρασιά του δεδομένου χρώματος που εμφιαλώθηκαν στη δεδομένη χώρα.
filter(
[
Wine("Chardonnay", 2015, "Italy", White),
Wine("Pinot grigio", 2017, "Germany", White),
Wine("Pinot noir", 2016, "France", Red),
Wine("Dornfelder", 2018, "Germany", Rose)
],
color: White
country: "Italy"
)
// -> [
// Wine("Chardonnay", 2015, "Italy", White),
// ]
Γράψου στο Exercism για να μάθεις και να κατακτήσεις Gleam με 33 έννοιες122 ασκήσεις και πραγματική καθοδήγηση από ανθρώπους, όλα δωρεάν.