Gu

Guards in Elixir

53 Übungen

Über Guards

Guards werden als Ergänzung zum Pattern Matching verwendet. Sie ermöglichen komplexere Prüfungen. Sie können in einigen, aber nicht allen Situationen verwendet werden, in denen Pattern Matching verwendet werden kann, zum Beispiel in Funktionsklauseln oder Case-Klauseln.

def empty?(list) when is_list(list) and length(list) == 0 do
  true
end
  • Guards beginnen mit dem when-Schlüsselwort, gefolgt von einem booleschen Ausdruck.

  • Guard-Ausdrücke sind spezielle Funktionen, für die gilt:

    • Sie müssen rein sein und dürfen keine globalen Zustände verändern.
    • Sie müssen strikte true- oder false-Werte zurückgeben.
  • Eine Liste häufiger Guards findest du in der Elixir-Dokumentation. Dazu gehören:

  • Du kannst deinen eigenen Guard mit defguard definieren.

    • Laut Elixirs Namenskonvention sollten Guard-Namen mit is_ beginnen.

      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
      
Über GitHub bearbeiten Der Link öffnet sich in einem neuen Fenster oder Tab

Lerne Guards

Das Üben ist gesperrt

Schalte 6 weitere Übungen frei, um Guards zu üben