Pular para o conteúdo

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
Playground
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

Referência · Programa fonte

zolo run examples/features/40-syntax-fourth/04-optional-patch.zolo --no-cache

Veja também

Índice global

Encontre seu caminho pela Zolo

Experimente uma ideia

Comece por aqui

9 resultados

9 resultados

enespt-br