arrow_back Voltar ao curso

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.

js
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:

js
// 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:

js
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:

js
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))  // 55

Isso é 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".

Comentários