Elixir - Declaración de caso

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.