Ga

Gardes en Elixir

53 exercices

À propos de Gardes

Les gardes servent de complément au pattern matching. Elles permettent des vérifications plus complexes. On peut les utiliser dans certaines situations, mais pas toutes là où le pattern matching peut être utilisé, par exemple dans des clauses de fonction ou des clauses case.

def empty?(list) when is_list(list) and length(list) == 0 do
  true
end
  • Les gardes commencent par le mot-clé when, suivi d'une expression booléenne.

  • Les expressions de garde sont des fonctions spéciales qui :

    • doivent être pures et ne modifier aucun état global ;
    • doivent renvoyer les valeurs strictes true ou false.
  • Une liste de gardes courantes se trouve dans la documentation d'Elixir. Elle comprend :

  • Tu peux définir ta propre garde avec defguard.

    • D'après la convention de nommage d'Elixir, les noms de gardes doivent commencer par 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
      
Modifie via GitHub Le lien s'ouvre dans une nouvelle fenêtre ou un nouvel onglet

Apprends Gardes

L'entraînement est verrouillé

Déverrouille 6 exercices de plus pour t'entraîner sur Gardes