对象和 %Object{} 之间的区别
Difference between Object and %Object{}
我想知道这两个对象有什么区别 -> Object 和 %Object{}。
1)
def get_parents() do
Object
|> select([m], {m.id, m.name})
|> where([m], is_nil(m.parent_id))
|> Repo.all()
end
-
def get_parents() do
%Object{}
|> select([m], {m.id, m.name})
|> where([m], is_nil(m.parent_id))
|> Repo.all()
end
不胜感激。
Object
是一个原子,代表module。
%Object{}
是在 Object
模块中声明的 struct 对象。
Ecto.Query.select/3
具有作为第一个参数传递的原子和结构的子句,基本上,当传递原子时,将创建默认结构并进一步传递,如下所示(实际实现要复杂得多)
def select(module, binding, expr) when is_atom(module),
do: select(%module{}, binding, expr)
我强烈建议您在成为 Ecto
之前先学习语言基础知识。
我想知道这两个对象有什么区别 -> Object 和 %Object{}。
1)
def get_parents() do
Object
|> select([m], {m.id, m.name})
|> where([m], is_nil(m.parent_id))
|> Repo.all()
end
-
def get_parents() do %Object{} |> select([m], {m.id, m.name}) |> where([m], is_nil(m.parent_id)) |> Repo.all() end
不胜感激。
Object
是一个原子,代表module。
%Object{}
是在 Object
模块中声明的 struct 对象。
Ecto.Query.select/3
具有作为第一个参数传递的原子和结构的子句,基本上,当传递原子时,将创建默认结构并进一步传递,如下所示(实际实现要复杂得多)
def select(module, binding, expr) when is_atom(module),
do: select(%module{}, binding, expr)
我强烈建议您在成为 Ecto
之前先学习语言基础知识。