Лучший способ понять пин-оператор Elixir ^ — это использовать соответствующие примеры.
Проблема:
Пользователям разрешено менять свои пароли, прежде чем они это сделают, они должны будут предоставить новый пароль и свой предыдущий пароль.
Решение:
На таком языке, как JavaScript, мы можем написать вот такое наивное решение
Приведенное выше вызовет Ошибку сопоставления, поскольку введенный пользователем пароль не соответствует его текущему паролю.
Используя пин-оператор Эликсира, мы можем записать вышеизложенное как
Приведенное выше также вызовет исключение MatchError.
Пояснение:
Используйте оператор вывода ^ для сопоставления шаблона со значением существующей переменной. В приведенном выше примере с Эликсиром переменная new_password привязана к первому элементу кортежа (структура данных Elixirs представлена с помощью {}), а не повторно связывает переменную current_password. сопоставление шаблона с его существующим значением.
Теперь этот пример из документации Elixir должен иметь смысл.
Первоначально опубликовано на моем веб-сайте https://theterminalguy.sh/