Pular para o conteúdo

06 · Funções

Argumentos nomeados abreviados

Uma chamada com name: passa a variável name do chamador. Valores explícitos e abreviados podem ser misturados e reordenados pelo rótulo. Uma variável ausente é um erro; o formatador preserva a abreviação.

Nesta página

Uma chamada com name: passa a variável name do chamador. Valores explícitos e abreviados podem ser misturados e reordenados pelo rótulo. Uma variável ausente é um erro; o formatador preserva a abreviação.

Exemplo completo

Argumentos nomeados abreviados.

20-named-argument-shorthand.zolo
Playground
// Named argument shorthand keeps the label and uses the local value.

struct User {
    name: str,
    email: str,
    active: bool,
}

fn create_user(name: str, email: str, active: bool = true) -> User {
    User { name, email, active }
}

struct Team {
    title: str,
}

impl Team {
    fn contact(self, name: str, email: str) -> str {
        "{self.title}: {name} <{email}>"
    }
}

fn main() {
    let name = "Ana"
    let email = "[email protected]"

    // Reordering and defaults are the same as for explicit named arguments.

    let user = create_user(email:, name:)
    print("{user.name} <{user.email}>") // expected: Ana <[email protected]>

    print(user.active) // expected: true


    // Explicit values and shorthand can be mixed.

    let disabled = create_user(name:, email:, active: false)
    print(disabled.active) // expected: false


    let team = Team { title: "Zolo" }
    print(team.contact(email:, name:)) // expected: Zolo: Ana <[email protected]>

}

Regras e comportamento

Parâmetros de funções e lambdas · Documentação

A partir de um checkout do repositório:

zolo examples/features/05-functions/20-named-argument-shorthand.zolo

Índice global

Encontre seu caminho pela Zolo

Experimente uma ideia

Comece por aqui

9 resultados

9 resultados

enespt-br