在Elixir中,pin操作符用於防止變量重新綁定。然而,對於一個外生查詢像爲什麼在Ecto查詢中需要pin操作符?
from u in User, where: u.username == ^username
的編程鳳凰狀態(第7章),其
記住,^運算符的作者(稱爲銷運營商)意味着我們想要保持^用戶名相同。
但是這聽起來並不正確,因爲很明顯,查詢中的比較不會導致變量重新綁定。
這本書的作者(JoséValim合着)是否寫錯了? Ecto中的pin操作符是否僅查詢Ecto DSL的構造,而不是通常的Elixir pin操作符?或者在宏展開之後,查詢是否真的有機會重新綁定username
?
閱讀更多:當你想要模式匹配對現有變量的值,而不是重新綁定變量
這方面第一句話的要點是什麼? Ecto查詢實際上是模式匹配? –