Saltar al contenido

07 · Coincidencia de Patrones

Valores por defecto al desestructurar

Un patrón de campo como { retries = 3 } aporta un valor por defecto para ausencia opcional o nil. Cero, false y las cadenas vacías siguen siendo valores. El valor por defecto solo se evalúa cuando hace falta.

En esta página

Un patrón de campo como { retries = 3 } aporta un valor por defecto para ausencia opcional o nil. Cero, false y las cadenas vacías siguen siendo valores. El valor por defecto solo se evalúa cuando hace falta.

Ejemplo completo

Valores por defecto al desestructurar.

06-destructure-defaults.zolo
Playground
struct Settings { timeout: int?, retries: int?, enabled: bool? }

let fallbacks = 0
fn default_timeout() -> int { fallbacks += 1; return 5 }
fn configure(settings: Settings) -> str {
    let { timeout: wait = default_timeout(), retries = 3, enabled = true } = settings
    assert(wait == 5)
    assert(retries == 0)
    assert(enabled == false)
    "timeout={wait}, retries={retries}, enabled={enabled}"
}
print(configure(Settings { timeout: nil, retries: 0, enabled: false }))
assert(fallbacks == 1)

Referencia

Referencia · Programa fuente

zolo run examples/features/40-syntax-fourth/06-destructure-defaults.zolo --no-cache

Consulta también

Índice global

Encuentra tu camino por Zolo

Prueba una idea

Empieza aquí

9 resultados

9 resultados

enespt-br