Я не понимаю, что именно означает равный знак в Эликсире. Непонятно, что это похоже на сочетание между назначением и операцией сопоставления шаблонов.Каково точное значение знака равенства в Эликсире?
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
Я понимаю, что в эликсире, то равно оператор означает, в соответствии с левой стороны знака = на правую сторону. Первые две строки имеют смысл для меня. x и y - несвязанные переменные, поэтому они могут соответствовать любому. Они связаны друг с другом. Следовательно, я понимаю третью строку. Вы не можете сопоставить 3 с 5.
Где я начинаю размахивать головой, почему, черт возьми, две последние строки выполнены без такой же ошибки. Похоже, что знак равенства возвращается только к оператору присваивания.
Я пытаюсь принять это поведение как факт без полного понимания и попытался пойти дальше в изучении языка. Но поскольку сопоставление образцов является одним из основных механизмов Elixir, я постоянно блокируюсь и чувствую, что должен вернуться к этому оригинальному вопросу. Я больше не пойду, прежде чем я полностью пойму, что именно происходит с знаком «=» и какова логика.
http://elixir-lang.org/getting-started/pattern-matching.html#the-pin-operator – AbM