Gu

Guards in Elixir

53 esercizi

Informazioni su Guards

Le guardie si usano come complemento al pattern matching. Permettono di eseguire controlli più complessi. Si possono usare in alcune, ma non tutte le situazioni in cui si può usare il pattern matching, per esempio nelle clausole di funzione o nelle clausole case.

def empty?(list) when is_list(list) and length(list) == 0 do
  true
end
  • Le guardie iniziano con la parola chiave when, seguita da un'espressione booleana.

  • Le espressioni di guardia sono funzioni speciali che:

    • Devono essere pure e non modificare alcuno stato globale.
    • Devono restituire valori rigorosamente true o false.
  • Un elenco delle guardie più comuni si trova nella documentazione di Elixir. Ne fanno parte:

  • Puoi definire una guardia personalizzata con defguard.

    • Secondo la convenzione di denominazione di Elixir, i nomi delle guardie dovrebbero iniziare con is_.

      defmodule HTTP do
        defguard is_success(code) when code >= 200 and code < 300
      
        def handle_response(code) when is_success(code) do
          :ok
        end
      end
      
Modifica tramite GitHub Il collegamento si apre in una nuova finestra o scheda

Impara Guards

La pratica è bloccata

Sblocca 6 altri esercizi per esercitarti su Guards