A veces, cuando una función recibe muchos argumentos, puede resultar difícil recordar el orden en el que hay que pasarlos. Para facilitar la legibilidad, Gleam permite etiquetar los argumentos con un nombre.
Para etiquetar un argumento, escribe el nombre de la etiqueta antes del nombre del argumento, separados por un espacio.
pub fn replace(
in string: String,
each target: String,
with replacement: String
) -> String {
// ...
}
Cuando llamas a una función con argumentos etiquetados, los argumentos se pueden pasar en cualquier orden. Todas estas llamadas a replace son equivalentes:
replace(in: "🍔🍔🍔", each: "🍔", with: "🍕")
replace(each: "🍔", in: "🍔🍔🍔", with: "🍕")
replace(with: "🍕", each: "🍔", in: "🍔🍔🍔")
Las etiquetas siempre son opcionales. Aunque una función tenga argumentos etiquetados, se puede seguir llamando sin etiquetas.
replace("🍔🍔🍔", "🍔", "🍕")
Eres el gerente de un restaurante elegante que tiene una bodega considerable. Muchos de tus clientes son exigentes aficionados al vino. Encontrar la botella de vino adecuada para un cliente concreto no es tarea fácil.
Como dueño de un restaurante con conocimientos tecnológicos, decidiste agilizar el proceso de selección de vinos escribiendo una aplicación que permita a los clientes filtrar tus vinos según sus preferencias.
Una botella de vino se representa con un tipo personalizado, y los vinos se guardan en un array.
[
Wine("Chardonnay", 2015, "Italy", White),
Wine("Pinot grigio", 2017, "Germany", White),
Wine("Pinot noir", 2016, "France", Red),
Wine("Dornfelder", 2018, "Germany", Rose)
]
Implementa la función wines_of_color. Debe recibir un array de vinos y devolver todos los vinos de un color determinado.
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),
// ]
Implementa la función wines_from_country. Debe recibir un array de vinos y devolver todos los vinos de un país determinado.
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)
// ]
Implementa la función filter. Debe recibir un array de vinos, un color y un país, y devolver todos los vinos del color determinado embotellados en el país determinado.
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),
// ]
Regístrate en Exercism para aprender y dominar Gleam con 33 conceptos122 ejercicios y mentoría humana real, todo gratis.