07 · Coincidencia de Patrones
Compara con un valor existente
Un patrón ^request_id compara con el enlace request_id del alcance externo. No crea un enlace nuevo ni puede usar un nombre introducido por el mismo patrón. Los valores comparados deben tener tipos compatibles.
En esta página
Un patrón ^request_id compara con el enlace request_id del alcance externo. No crea un enlace nuevo ni puede usar un nombre introducido por el mismo patrón. Los valores comparados deben tener tipos compatibles.
Ejemplo completo
Compara con un valor existente.
08-pin-patterns.zolo
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)
Referencia
zolo run examples/features/40-syntax-fourth/08-pin-patterns.zolo --no-cache
Consulta también