La declaración de caso se puede considerar como un reemplazo de la declaración de cambio en lenguajes imperativos. Case toma una variable / literal y le aplica una coincidencia de patrones con diferentes casos. Si algún caso coincide, Elixir ejecuta el código asociado con ese caso y sale de la declaración del caso. Si no se encuentra ninguna coincidencia, sale de la declaración con un CaseClauseError que muestrano matching clauses were found. Siempre debe tener un caso con _ que coincida con todos los valores. Esto ayuda a prevenir el error mencionado anteriormente. También esto es comparable aldefault case en sentencias switch-case.
Sintaxis
La sintaxis de una instrucción if es la siguiente:
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
Ejemplo
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
El programa anterior genera el siguiente resultado.
Hi, I'm three
Tenga en cuenta que la selección de casos se realiza mediante la coincidencia de patrones, por lo que puede utilizar las técnicas estándar de coincidencia de patrones.