所以我正在寫一個快速異步用戶名驗證檢查,並按照上PhoenixFrameworks網站上的教程中,我能做到這一點,像這樣:怎樣的參數PhoenixFramework(藥劑)結合工作
def validateUsername(conn, %{"username" => user}) do
IO.inspect(conn)
query = from u in User,
where: u.username == ^user,
select: [u.username]
case Repo.all(query) do
[[username]] ->
conn
|> json(%{ success: false, error: "Username has been taken" })
[] ->
conn
|> json(%{ success: true })
nil ->
conn
|> json(%{ success: true })
_ ->
conn
|> json(%{ success: false, error: "Internal Server Error"})
end
但這對我來說並不合理,因爲我從來沒有處理過函數式編程語言,並且我知道elixir中的=
的數據綁定工作方式不同。但在我的腦子裏,我覺得它應該被逆轉,如:
def validateUsername(conn, %{user => "username"})
或類似的東西,所以我的主要問題是
怎樣的%{"username" => user})
填充user
變量有關的信息?
模式匹配不是固有的函數式編程。這只是許多FP語言實現中的一個突出特性。 –