import gleam/io
pub fn main() {
// Without using labels
io.debug(calculate(1, 2, 3))
// Using the labels
io.debug(calculate(1, add: 2, multiply: 3))
// Using the labels in a different order
io.debug(calculate(1, multiply: 3, add: 2))
}
fn calculate(value: Int, add addend: Int, multiply multiplier: Int) {
value * multiplier + addend
}
Cuando las funciones toman varios argumentos, puede resultar difícil recordar cuáles son los argumentos y en qué orden se esperan.
Para ayudar con esto, Gleam admite argumentos etiquetados, donde los argumentos de función reciben una etiqueta externa además de su nombre interno. Estas etiquetas se escriben antes del nombre del argumento en la definición de la función.
Cuando se utilizan argumentos etiquetados, el orden de los argumentos no importa, pero todos los argumentos no etiquetados deben ir antes que los argumentos etiquetados.
No hay costo de rendimiento por el uso de argumentos etiquetados, no asigna un diccionario ni realiza ningún otro trabajo en tiempo de ejecución.
Las etiquetas son opcionales al llamar a una función, corresponde al programador decidir qué es lo más claro en su código.