Pular para o conteúdo

07 · Casamento de Padrões

Preserve a cauda exata da tupla

Desestruture (status, ...payload) para reunir os elementos restantes da tupla. payload preserva o tipo e a ordem de cada elemento. O binding da cauda precisa ser o último e não transforma os elementos em um array homogêneo.

Nesta página

Desestruture (status, ...payload) para reunir os elementos restantes da tupla. payload preserva o tipo e a ordem de cada elemento. O binding da cauda precisa ser o último e não transforma os elementos em um array homogêneo.

Exemplo completo

Preserve a cauda exata da tupla.

20-tuple-rest.zolo
Playground
fn response() -> (int, str, bool) { return [200, "queued", true] }
fn describe(payload: (str, bool)) -> str = "{payload[0]}: {payload[1]}"

fn summarize(packet: (int, str, bool)) -> str {
    let (status, ...payload) = packet
    let (...whole) = packet
    let (_, _, _, ...empty) = packet
    assert(status == 200)
    assert(payload[0] == "queued")
    assert(payload[1] == true)
    assert(whole[0] == 200)
    assert(empty.len() == 0)
    "{status}: {describe(payload)}"
}
print(summarize(response()))

Referência

Referência · Programa fonte

zolo run examples/features/40-syntax-fourth/20-tuple-rest.zolo --no-cache

Veja também

Índice global

Encontre seu caminho pela Zolo

Experimente uma ideia

Comece por aqui

9 resultados

9 resultados

enespt-br