09 · Estructuras de Datos
Aplica los campos presentes del patch
En una actualización with, name?: patch.name conserva el campo original cuando el nuevo valor es nil. Los valores presentes sustituyen el campo. Un name: nil normal sigue asignando nil cuando el campo lo permite.
En esta página
En una actualización with, name?: patch.name conserva el campo original cuando el nuevo valor es nil. Los valores presentes sustituyen el campo. Un name: nil normal sigue asignando nil cuando el campo lo permite.
Ejemplo completo
Aplica los campos presentes del patch.
04-optional-patch.zolo
struct User { name: str, avatar: str? }
struct ProfilePatch { name: str?, avatar: str? }
let user = User { name: "Ada", avatar: "ada.png" }
let patch = ProfilePatch { name: "Ada Lovelace", avatar: nil }
let updated = user with { name?: patch.name, avatar?: patch.avatar }
let cleared = updated with { avatar: nil }
assert(updated.name == "Ada Lovelace")
assert(updated.avatar == "ada.png")
assert(cleared.avatar == nil)
assert(user.name == "Ada")
print(updated.name)
print(updated.avatar ?? "no avatar")
print(cleared.avatar ?? "no avatar")
Referencia
zolo run examples/features/40-syntax-fourth/04-optional-patch.zolo --no-cache
Consulta también