A instrução Case pode ser considerada uma substituição da instrução switch em linguagens imperativas. Case pega uma variável / literal e aplica a correspondência de padrões a ela com casos diferentes. Se houver correspondência de qualquer caso, o Elixir executa o código associado a esse caso e sai da instrução case. Se nenhuma correspondência for encontrada, ele sai da instrução com um CaseClauseError que exibeno matching clauses were found. Você sempre deve ter um caso com _ que corresponde a todos os valores. Isso ajuda na prevenção do erro mencionado acima. Além disso, isso é comparável aodefault caso em declarações switch-case.
Sintaxe
A sintaxe de uma instrução if é a seguinte -
case value do
matcher_1 -> #code to execute if value matches matcher_1
matcher_2 -> #code to execute if value matches matcher_2
matcher_3 -> #code to execute if value matches matcher_3
...
_ -> #code to execute if value does not match any of the above
end
Exemplo
case 3 do
1 -> IO.puts("Hi, I'm one")
2 -> IO.puts("Hi, I'm two")
3 -> IO.puts("Hi, I'm three")
_ -> IO.puts("Oops, you dont match!")
end
O programa acima gera o seguinte resultado.
Hi, I'm three
Observe que a seleção de caso é feita usando a correspondência de padrões, então você pode usar as técnicas de correspondência de padrões padrão.