Elixir の等号の正確な意味がわかりません。明確でないのは、割り当てとパターン マッチング操作が混在しているように見えることです。
iex(1)> x=4
4
iex(2)> y=5
5
iex(3)> 3=y
** (MatchError) no match of right hand side value: 5
iex(3)> y=3
3
iex(4)> y=x
4
Elixir では、等号演算子は = 記号の左側を右側に一致させることを意味することを理解しています。最初の 2 行は理にかなっています。x と y はバインドされていない変数なので、何にでも一致する可能性があります。一致するようにバインドされます。したがって、3行目は理解できます。3 と 5 を一致させることはできません。
私が頭を失い始めたのは、最後の2行が同じエラーを出さずに実行された理由です。等号が代入演算子のみに戻ったようです。
私はこの行動を完全に理解することなく事実として受け入れようとし、言語の学習をさらに進めようとしました. しかし、パターン マッチングは Elixir のコア メカニズムの 1 つであるため、私は常にロックしており、この元の質問に戻らなければならないと感じています。「=」記号で正確に何が起こるか、そしてその論理が何であるかを完全に理解するまで、これ以上先に進むことはしません。