Quand une fonction prend beaucoup d'arguments, il peut être difficile de se souvenir de l'ordre dans lequel les fournir. Pour faciliter la lecture, Gleam permet de nommer les arguments.
Pour nommer un argument, indique le nom du label avant le nom de l'argument, en les séparant par un espace.
pub fn replace(
in string: String,
each target: String,
with replacement: String
) -> String {
// ...
}
Quand on appelle une fonction avec des arguments nommés, on peut fournir les arguments dans n'importe quel ordre. Ces appels à replace sont tous équivalents :
replace(in: "🍔🍔🍔", each: "🍔", with: "🍕")
replace(each: "🍔", in: "🍔🍔🍔", with: "🍕")
replace(with: "🍕", each: "🍔", in: "🍔🍔🍔")
Les labels sont toujours facultatifs. Même si une fonction prend des arguments nommés, on peut toujours l'appeler sans les labels.
replace("🍔🍔🍔", "🍔", "🍕")
Tu es le gérant d'un restaurant chic avec une cave à vin bien garnie. Beaucoup de tes clients sont des passionnés de vin exigeants. Trouver la bonne bouteille de vin pour un client en particulier n'est pas une mince affaire.
En tant que restaurateur féru de technologie, tu as décidé d'accélérer la sélection des vins en écrivant une application qui permettra à tes clients de filtrer tes vins selon leurs préférences.
Une bouteille de vin est représentée par un type personnalisé, et les vins sont stockés dans un tableau.
[
Wine("Chardonnay", 2015, "Italy", White),
Wine("Pinot grigio", 2017, "Germany", White),
Wine("Pinot noir", 2016, "France", Red),
Wine("Dornfelder", 2018, "Germany", Rose)
]
Implémente la fonction wines_of_color. Elle doit prendre un tableau de vins et renvoyer tous les vins d'une couleur donnée.
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),
// ]
Implémente la fonction wines_from_country. Elle doit prendre un tableau de vins et renvoyer tous les vins d'un pays donné.
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)
// ]
Implémente la fonction filter. Elle doit prendre un tableau de vins, une couleur et un pays, et renvoyer tous les vins de la couleur donnée mis en bouteille dans le pays donné.
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),
// ]
Inscris-toi sur Exercism pour apprendre et maîtriser Gleam avec 33 concepts122 exercices, et un vrai mentorat humain, le tout gratuitement.