Open1
Elixir パターンマッチの習作
Keywordでのガード
- Mapと同じようにはできないから、Mapに変換して行うしかなさそう
- 例えば、
hello(hoge: "hoge", a: 2)
をhoge: "hoge"
でパターンマッチしたい
def hello(opts = [hoge: "hoge"]), do: "HIT"
def hello(opts), do: "MISS"
上記ができないので、Mapで扱うようにする
def hello(opts) when is_list(opts), do: hello(Map.new(opts))
def hello(opts_m = %{hoge: "hoge"}), do: "HIT"
def hello(opts_m), do: "MISS"
- // はたして使うことがあるかどうか