06 · Funções
Argumentos de um record
Passe os campos nomeados com ..options. O record é avaliado uma vez, na ordem da chamada; argumentos explícitos substituem os campos expandidos em qualquer posição. Rótulos desconhecidos e tipos incompatíveis são erros.
Nesta página
Passe os campos nomeados com ..options. O record é avaliado uma vez, na ordem da chamada; argumentos explícitos substituem os campos expandidos em qualquer posição. Rótulos desconhecidos e tipos incompatíveis são erros.
Exemplo completo
Argumentos de um record.
01-record-arguments.zolo
struct ConnectionOptions { host: str, timeout: int }
fn connect(host: str, timeout wait: int, retries: int = 2) -> str =
"{host}: timeout={wait}, retries={retries}"
let options = ConnectionOptions { host: "api.example.test", timeout: 30 }
let fast = connect(..options, timeout: 5)
let slow = connect(timeout: 60, ..options)
assert(fast == "api.example.test: timeout=5, retries=2")
assert(slow == "api.example.test: timeout=60, retries=2")
print(fast)
print(slow)
Referência
zolo run examples/features/40-syntax-fourth/01-record-arguments.zolo --no-cache
Veja também