07 · Coincidencia de Patrones
Conserva la cola exacta de la tupla
Desestructura (status, ...payload) para reunir los elementos restantes de la tupla. payload conserva el tipo y el orden de cada elemento. El enlace de la cola debe ser el último y no convierte los elementos en un array homogéneo.
En esta página
Desestructura (status, ...payload) para reunir los elementos restantes de la tupla. payload conserva el tipo y el orden de cada elemento. El enlace de la cola debe ser el último y no convierte los elementos en un array homogéneo.
Ejemplo completo
Conserva la cola exacta de la tupla.
20-tuple-rest.zolo
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()))
Referencia
zolo run examples/features/40-syntax-fourth/20-tuple-rest.zolo --no-cache
Consulta también