09 · Estruturas de Dados
Aplique os campos presentes do patch
Em uma atualização with, name?: patch.name mantém o campo original quando o novo valor é nil. Valores presentes substituem o campo. Um name: nil comum continua atribuindo nil quando o campo permite.
Nesta página
Em uma atualização with, name?: patch.name mantém o campo original quando o novo valor é nil. Valores presentes substituem o campo. Um name: nil comum continua atribuindo nil quando o campo permite.
Exemplo completo
Aplique os campos presentes do 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")
Referência
zolo run examples/features/40-syntax-fourth/04-optional-patch.zolo --no-cache
Veja também