ガー

ガード の Elixir

53個の演習

ガードについて

ガードは、パターンマッチングを補完するものとして使われます。ガードを使うと、より複雑なチェックができます。パターンマッチングが使える場面のうち、すべてではありませんが、いくつかの場面で使えます。たとえば、関数の節やcase節などです。

def empty?(list) when is_list(list) and length(list) == 0 do
  true
end
  • ガードはwhenキーワードで始まり、そのあとに真偽値の式が続きます。

  • ガード式は特別な関数で、次の条件を満たす必要があります。

    • 純粋であること。グローバルな状態を変更してはいけません。
    • 厳密にtrueまたはfalseを返すこと。
  • よく使われるガードの一覧は、Elixirのドキュメントにあります。次のようなものがあります。

  • defguardを使えば、独自のガードを定義できます。

    • Elixirの命名規則では、ガードの名前は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
      
GitHubで編集 リンクは新しいウィンドウまたはタブで開きます

ガードを学習する

練習はロックされています

ガードを練習するには、あと6個の演習のロックを解除してください