首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >基于动态变量创建结构

基于动态变量创建结构
EN

Stack Overflow用户
提问于 2018-06-04 15:43:25
回答 1查看 1.9K关注 0票数 8

是否可以基于动态传递的变量创建结构?

就像这样:

代码语言:javascript
复制
  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
      }
    )

结束

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2018-06-04 15:50:02

是的,使用Kernel.struct/2

代码语言:javascript
复制
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}]

就你而言,这将是:

代码语言:javascript
复制
&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
)
票数 12
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/50684288

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档