[英]Elixir - Create struct based on dynamic variable
Is it possible to create a struct based on a dynamically passed variable ? 是否可以基于动态传递的变量创建结构?
Something like that: 像这样:
def create_map_list(list, atom, struct) do
Enum.filter(list, &Map.has_key?(&1, atom))
|> Enum.map(
&%struct{
id: &1.new_agent.id,
name: &1.new_agent.name,
primary_skillset: &1.new_agent.primary_skillset,
secondary_skillset: &1.new_agent.secondary_skillset
}
)
end 结束
Yes, using Kernel.struct/2
: 是的,使用Kernel.struct/2
:
iex(1)> defmodule A do
...(1)> defstruct [:x]
...(1)> end
iex(2)> [1, 2, 3] |> Enum.map(&struct(A, x: &1))
[%A{x: 1}, %A{x: 2}, %A{x: 3}]
In your case, that would be: 您的情况是:
&struct(struct,
id: &1.new_agent.id,
name: &1.new_agent.name,
primary_skillset: &1.new_agent.primary_skillset,
secondary_skillset: &1.new_agent.secondary_skillset
)
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.