从Elixir中的Map将值加​​载到Struct中

时间:2015-06-23 08:20:50

标签: elixir

假设我有.text()个用户数据:

map

如何将其加载到iex(1)> user_map #=> %{name: "Some User", email: "user@example.com", password: "*********"} 结构中(希望使用一些Rubyish Elixir Magic)?

我目前尝试了这些但是所有这些都失败了。浏览Elixir网站上的Structs部分。

%User{}

1 个答案:

答案 0 :(得分:11)

elixir-lang-talk邮件列表中找到答案。我们可以使用struct/2方法:

struct(User, user_map)
#=> %User{name: "Some User", email: "user@example.com", password: "*********"}

Dogbert提到的另一种方法是使用Map.merge/2

Map.merge(%User{}, user_map)
#=> %User{name: "Some User", email: "user@example.com", password: "*********"}

来自评论的警告: Map.merge无法处理结构上的强制键