Elixir - Declaração do Caso

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.