gpt4 book ai didi

compiler-errors - 药剂: Why do I get “undefined function” error?

转载 作者:行者123 更新时间:2023-12-02 10:49:47 25 4
gpt4 key购买 nike

Elixir编译器在函数的第三行给了我“未定义的函数更改/0”:

  def ignore_empty(changeset) do
cond do
%{valid?: false, changes: changes} = changeset when changes == %{} ->
%{changeset | action: :ignore}
true -> changeset
end
end

这是为什么?我主要从cast_assoc函数 here的Ecto.Changeset文档复制了此代码

最佳答案

您可能打算使用case,例如

def ignore_empty(changeset) do
case changeset do
%{valid?: false, changes: changes} = changeset when changes == %{} ->
%{changeset | action: :ignore}
_ ->
changeset
end
end

之所以得到“未定义的函数”,是因为在扩展表达式时,恰巧是编译器遇到的第一个错误。将表达式放入 cond是有效的,因此除了引用未定义的函数 changes之外,其他失败的原因是使用 when。无论如何,这似乎是这里的问题。

关于compiler-errors - 药剂: Why do I get “undefined function” error?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/46127797/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com