Por vezes, quando uma função recebe muitos argumentos, pode ser difícil lembrarmo-nos da ordem em que devem ser indicados. Para facilitar a leitura, o Gleam permite etiquetar os argumentos com um nome.
Para etiquetar um argumento, indica o nome da etiqueta 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 etiquetados, podes indicar os argumentos por qualquer ordem. Todas estas chamadas a replace são equivalentes:
replace(in: "🍔🍔🍔", each: "🍔", with: "🍕")
replace(each: "🍔", in: "🍔🍔🍔", with: "🍕")
replace(with: "🍕", each: "🍔", in: "🍔🍔🍔")
As etiquetas são sempre opcionais. Mesmo que uma função tenha argumentos etiquetados, podes continuar a chamá-la sem etiquetas.
replace("🍔🍔🍔", "🍔", "🍕")
És o gerente de um restaurante requintado com uma cave de vinhos considerável. Muitos dos teus clientes são apreciadores de vinho exigentes. Encontrar a garrafa de vinho certa para um determinado cliente não é tarefa fácil.
Como proprietário de um restaurante com conhecimentos de tecnologia, decidiste acelerar o processo de seleção de vinhos escrevendo uma aplicação que permite aos clientes filtrar os teus vinhos pelas suas preferências.
Uma garrafa de vinho é representada por um tipo personalizado e os vinhos são guardados numa lista.
[
Wine("Chardonnay", 2015, "Italy", White),
Wine("Pinot grigio", 2017, "Germany", White),
Wine("Pinot noir", 2016, "France", Red),
Wine("Dornfelder", 2018, "Germany", Rose)
]
Implementa a função wines_of_color. Deve receber uma lista de vinhos e devolver 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),
// ]
Implementa a função wines_from_country. Deve receber uma lista de vinhos e devolver 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)
// ]
Implementa a função filter. Deve receber uma lista de vinhos, uma cor e um país, e devolver todos os vinhos de uma determinada cor engarrafados num determinado país.
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),
// ]
Inscreve-te no Exercism para aprenderes e dominares Gleam com 33 conceitos122 exercícios, e mentoria humana real, tudo grátis.