最近、私は多数のキー値を更新するという問題に取り組んだ。エリクシールに状態を保存する
当然のことながら、私は、Map.put/3
ような操作で、Map
を用いて検討しました。
しかし、これはエリクサーでデータ構造の不変の性質を考えると、不十分なように見えた:
iex> m = Map.put(%{}, :a, 1)
%{a: 1}
iex> Map.put(m, :b, 2)
%{a: 1, b: 2}
iex> m
%{a: 1}
私はその後GenServer
にMap
の状態を保持し、かつhandle_cast/3
呼び出しを使用してそれを更新することで問題を解決しました。
は一般的に、これは正しいアプローチである、またはこれはあまりにもここでしたか?