私はパターンマッチで遊んでいますが、空のマップに対してメソッドのパラメータをパターン化するのは簡単ではないことがわかりました。私はそれがこのような何かを行くだろうと思った:空のマップに対するパターンマッチ関数
defmodule PatternMatch do
def modify(%{}) do
%{}
end
def modify(map) do
# expensive operation
%{ modified: "map" }
end
end
しかし、最初の関数の句は任意のマップと一致するように思える:
iex> PatternMatch.modify(%{a: "map"})
==> %{}
空のマップをチェックする別の方法はありますか?
関数句の順序もこの問題に影響しますか?私は空のマップは常に一致するので、最後の関数節にする必要がありますか? –