vai-de — Escolhendo pelo Valor
Fundamentos do XanaScript • Aula 8 de 20
O vai-de é o switch do XanaScript. Quando você compara uma mesma variável contra vários valores, ele fica mais legível que uma cadeia de se-pah.
cria dia = "terça"
vai-de (dia) {
se-for "segunda": grita-ae("começou a semana")
se-for "sexta": grita-ae("sextou!")
se-nao-der: grita-ae("dia normal")
}Por que usar vai-de em vez de vários se-pah?
Compare:
// Com se-pah
se-pah (dia == "segunda") { ... }
ai se-pah (dia == "sexta") { ... }
ai { ... }
// Com vai-de
vai-de (dia) {
se-for "segunda": ...
se-for "sexta": ...
se-nao-der: ...
}O vai-de deixa claro que todos os casos falam da mesma variável — o leitor não precisa verificar "essa condição é sobre qual variável?" a cada linha.
Múltiplos casos
Quando vários valores caem no mesmo caminho:
cria n = 2
vai-de (n) {
se-for 1:
se-for 2:
grita-ae("baixo")
se-for 3, 4:
grita-ae("médio")
se-nao-der:
grita-ae("alto")
}Como expressão
O vai-de também retorna um valor — use no lugar de um ternário complexo:
cria fib = (n) => vai-de (n) {
se-for 0 => 0
se-for 1 => 1
se-nao-der => fib(n - 1) + fib(n - 2)
}
grita-ae(fib(10)) // 55Isso é Fibonacci com pattern matching: a função se define pelos casos em vez de por uma lógica imperativa. Quando você vê se-for 0 => 0, lê direto: "se n for 0, vale 0".