W Elixir, operator szpilki służy do zapobiegania ponownemu wiązaniu. Jednakże w odniesieniu do zapytania ekto jakDlaczego operatory pinów są niezbędne w zapytaniach Ecto?
from u in User, where: u.username == ^username
autorów Programowanie Phoenix państwa (w rozdziale 7), które
Pamiętaj, że^operatora (tzw operator pin) oznacza chcemy zachować ^nazwa użytkownika to samo.
Ale to nie brzmi dobrze, ponieważ podobno porównanie w zapytaniu nie powoduje żadnego ponownego wiązania zmiennych.
Czy autorzy książki (której José Valim jest współautorem) się pomylili? Czy operator pinów w Ecto pyta jedynie o konstrukcję DSL Ecto zamiast zwykłego operatora szpilki Elixir? A może zapytanie naprawdę zyska szansę na ponowne powiązanie username
po rozwinięciu makr?
Jaki jest sens pierwszego zdania w tym kontekście? Że zapytania Ecto są w rzeczywistości dopasowanymi wzorcami? –