В Elixir оператор булавки используется для предотвращения перепроверки переменных. Однако в отношении запроса Ecto, такого как
from u in User, where: u.username == ^username
авторы состояния программирования Phoenix (в главе 7), что
Помните, что оператор ^ (называемый оператором вывода) означает, что мы хотим сохранить ^ имя пользователя.
Но это звучит не так, потому что, по-видимому, сравнение в запросе не должно вызывать перезаписи переменных.
Ошибочны ли авторы книги (которые соавтор Хосе Валим)? Является ли оператор булавки в Ecto запрашивает просто конструкцию Ecto DSL вместо обычного оператора вывода Elixir? Или запрос действительно получит возможность перестроить username
после расширения макросов?