Saltar al contenido

09 · Estructuras de Datos

Actualizaciones inmutables calculadas

Una actualización with acepta operadores compuestos como value += 1. Lee el campo anterior una vez y calcula el reemplazo sin modificar el original. Siguen aplicándose restricciones de visibilidad, tipos, caminos conflictivos y copias lineales.

En esta página

Una actualización with acepta operadores compuestos como value += 1. Lee el campo anterior una vez y calcula el reemplazo sin modificar el original. Siguen aplicándose restricciones de visibilidad, tipos, caminos conflictivos y copias lineales.

Ejemplo completo

Actualizaciones inmutables calculadas.

computed_record_updates.zolo
Playground
struct Counter { value: int, limit: int? }

let current = Counter { value: 2, limit: nil }
let next = current with { value += 1, limit ??= 10 }

print(current.value) // 2

print(next.value)    // 3

print(next.limit)    // 10

Reglas y comportamiento

Records, maps y actualizaciones · Documentación

Desde un checkout del repositorio:

zolo examples/features/computed_record_updates.zolo

Agrupar actualizaciones por ruta

Agrupe los cambios bajo la ruta común para evitar repetirla. Las actualizaciones compuestas y las comprobaciones de campos conservan las mismas reglas.

08-grouped-updates.zolo
Playground
// Update several fields under the same path, leaving the original value intact.

struct Address { city: str, visits: int }
struct Person { name: str, address: Address }
let original = Person { name: "Ana", address: Address { city: "Recife", visits: 2 } }
let moved = original with {
    address { city: "Natal", visits += 1 },
}
print(original.address.city) // expect: Recife

print(moved.address.city) // expect: Natal

print(moved.address.visits) // expect: 3

Consulta también

Índice global

Encuentra tu camino por Zolo

Prueba una idea

Empieza aquí

9 resultados

9 resultados

enespt-br