Лучший способ понять пин-оператор Elixir ^ — это использовать соответствующие примеры.

Проблема:

Пользователям разрешено менять свои пароли, прежде чем они это сделают, они должны будут предоставить новый пароль и свой предыдущий пароль.

Решение:

На таком языке, как JavaScript, мы можем написать вот такое наивное решение

Приведенное выше вызовет Ошибку сопоставления, поскольку введенный пользователем пароль не соответствует его текущему паролю.

Используя пин-оператор Эликсира, мы можем записать вышеизложенное как

Приведенное выше также вызовет исключение MatchError.

Пояснение:

Используйте оператор вывода ^ для сопоставления шаблона со значением существующей переменной. В приведенном выше примере с Эликсиром переменная new_password привязана к первому элементу кортежа (структура данных Elixirs представлена ​​с помощью {}), а не повторно связывает переменную current_password. сопоставление шаблона с его существующим значением.

Теперь этот пример из документации Elixir должен иметь смысл.

Первоначально опубликовано на моем веб-сайте https://theterminalguy.sh/