Elisir - Dichiarazione del caso

L'istruzione Case può essere considerata come una sostituzione dell'istruzione switch nelle lingue imperative. Case prende una variabile / letterale e applica la corrispondenza del modello ad essa con casi diversi. Se un caso corrisponde, Elixir esegue il codice associato a quel caso ed esce dall'istruzione case. Se non viene trovata alcuna corrispondenza, esce dall'istruzione con un CaseClauseError visualizzatono matching clauses were found. Dovresti sempre avere un caso con _ che corrisponde a tutti i valori. Questo aiuta a prevenire l'errore di cui sopra. Anche questo è paragonabile aldefault case nelle istruzioni switch-case.

Sintassi

La sintassi di un'istruzione if è la seguente:

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

Esempio

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

Il programma di cui sopra genera il seguente risultato.

Hi, I'm three

Si noti che la selezione del caso viene eseguita utilizzando la corrispondenza del modello, quindi è possibile utilizzare le tecniche di corrispondenza del modello standard.