Pular para o conteúdo

07 · Casamento de Padrões

Compare com um valor existente

Um padrão ^request_id compara com o binding request_id do escopo externo. Ele não cria um novo binding nem pode usar um nome introduzido pelo mesmo padrão. Os valores comparados precisam ter tipos compatíveis.

Nesta página

Um padrão ^request_id compara com o binding request_id do escopo externo. Ele não cria um novo binding nem pode usar um nome introduzido pelo mesmo padrão. Os valores comparados precisam ter tipos compatíveis.

Exemplo completo

Compare com um valor existente.

08-pin-patterns.zolo
Playground
struct Reply { request_id: int, data: str }

let request_id = 42
let reply = Reply { request_id: 42, data: "accepted" }
let other = Reply { request_id: 99, data: "stale" }
let accepted = match reply {
    { request_id: ^request_id, data, .. } => data,
    _ => "ignored"
}
let ignored = match other {
    { request_id: ^request_id, data, .. } => data,
    _ => "ignored"
}
assert(accepted == "accepted")
assert(ignored == "ignored")
assert(request_id == 42)
print(accepted)
print(ignored)

Referência

Referência · Programa fonte

zolo run examples/features/40-syntax-fourth/08-pin-patterns.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