Às vezes, quando uma função recebe muitos argumentos, pode ser difícil lembrar a ordem em que eles devem ser passados. Para facilitar a leitura, o Gleam permite rotular os argumentos com um nome.
Para rotular um argumento, escreva o nome do rótulo antes do nome do argumento, separados por um espaço.
pub fn replace(
in string: String,
each target: String,
with replacement: String
) -> String {
// ...
}
Ao chamar uma função com argumentos rotulados, os argumentos podem ser passados em qualquer ordem. Todas estas chamadas a replace são equivalentes:
replace(in: "🍔🍔🍔", each: "🍔", with: "🍕")
replace(each: "🍔", in: "🍔🍔🍔", with: "🍕")
replace(with: "🍕", each: "🍔", in: "🍔🍔🍔")
Os rótulos são sempre opcionais. Mesmo que uma função tenha argumentos rotulados, ela ainda pode ser chamada sem rótulos.
replace("🍔🍔🍔", "🍔", "🍕")
Você é o gerente de um restaurante chique que tem uma adega considerável. Muitos dos seus clientes são entusiastas exigentes de vinho. Encontrar a garrafa certa de vinho para um cliente específico não é uma tarefa fácil.
Como dono de restaurante ligado em tecnologia, você decidiu acelerar o processo de seleção de vinhos escrevendo um aplicativo que permite aos clientes filtrar seus vinhos de acordo com as preferências deles.
Uma garrafa de vinho é representada por um tipo personalizado, e os vinhos são armazenados em uma lista.
[
Wine("Chardonnay", 2015, "Italy", White),
Wine("Pinot grigio", 2017, "Germany", White),
Wine("Pinot noir", 2016, "France", Red),
Wine("Dornfelder", 2018, "Germany", Rose)
]
Implemente a função wines_of_color. Ela deve receber uma lista de vinhos e retornar todos os vinhos de uma determinada cor.
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),
// ]
Implemente a função wines_from_country. Ela deve receber uma lista de vinhos e retornar todos os vinhos de um determinado país.
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)
// ]
Implemente a função filter. Ela deve receber uma lista de vinhos, uma cor e um país e retornar todos os vinhos da cor determinada engarrafados no 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),
// ]
Crie sua conta no Exercism para aprender e dominar Gleam com 33 conceitos122 exercícios e mentoria humana de verdade, tudo de graça.