假设我有.text()
个用户数据:
map
如何将其加载到iex(1)> user_map
#=> %{name: "Some User", email: "user@example.com", password: "*********"}
结构中(希望使用一些Rubyish Elixir Magic)?
我目前尝试了这些但是所有这些都失败了。浏览Elixir网站上的Structs部分。
%User{}
答案 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无法处理结构上的强制键