07 · Casamento de Padrões
Dê um nome ao padrão reutilizável
Declare pattern ActiveUser(name) = User { name, active: true, .. } e reutilize em matches ou cláusulas de função. Os parâmetros fornecem os bindings do chamador; construtores resolvem onde o alias foi definido. O corpo do alias ainda não pode conter transformadores de view nem capturar valores externos por pins ou expressões de valor padrão.
Nesta página
Declare pattern ActiveUser(name) = User { name, active: true, .. } e reutilize em matches ou cláusulas de função. Os parâmetros fornecem os bindings do chamador; construtores resolvem onde o alias foi definido. O corpo do alias ainda não pode conter transformadores de view nem capturar valores externos por pins ou expressões de valor padrão.
Exemplo completo
Dê um nome ao padrão reutilizável.
// Reuse one selection rule in display logic and filtered iteration.
struct User { name: str, active: bool }
pattern ActiveUser(name) = User { name, active: true, .. }
fn label(value ActiveUser(name): User) -> str = "Active: {name}"
fn label(value _: User) -> str = "Inactive"
let users = [
User { name: "Ana", active: true },
User { name: "Beto", active: false },
]
for case ActiveUser(name) in users { print(name) }
print(label(users[0]))
print(label(users[1]))
Referência
zolo run examples/features/66-pattern-aliases.zolo --no-cache
Veja também