09 · Estruturas de Dados
Indexe uma coleção opcional
Use values?.[index] para obter nil se a coleção for nil ou a entrada estiver ausente. Uma coleção nil não avalia o índice. Continue com ?.campo para ler o campo apenas quando a entrada existir.
Nesta página
Use values?.[index] para obter nil se a coleção for nil ou a entrada estiver ausente. Uma coleção nil não avalia o índice. Continue com ?.campo para ler o campo apenas quando a entrada existir.
Exemplo completo
Indexe uma coleção opcional.
05-safe-index.zolo
struct User { name: str }
let users: [User]? = [User { name: "Ada" }, User { name: "Linus" }]
let selected = 1
let name = users?.[selected]?.name ?? "No selection"
let absent = users?.[10]?.name ?? "No selection"
let unavailable: [User]? = nil
let calls = 0
fn choose() -> int { calls += 1; return 0 }
let skipped = unavailable?.[choose()]?.name ?? "No data"
assert(name == "Linus")
assert(absent == "No selection")
assert(skipped == "No data")
assert(calls == 0)
let counts = #{2: 7}
assert(counts?.[2] == 7)
assert(counts?.[0] == nil)
print(name)
print(absent)
print(skipped)
Referência
zolo run examples/features/40-syntax-fourth/05-safe-index.zolo --no-cache
Veja também