将值从Elixir中的映射加载到结构中
假设我有一张带有一些用户数据的将值从Elixir中的映射加载到结构中,elixir,Elixir,假设我有一张带有一些用户数据的地图: iex(1)> user_map #=> %{name: "Some User", email: "user@example.com", password: "*********"} 如何将其加载到%User{}结构中(希望使用一些Rubyish长生不老药)? 我目前已经试过了,但都失败了。正在浏览Elixir网站上的部分 user_struct = %{ %User{} | user_map } user_struct = %{ %User
地图
:
iex(1)> user_map
#=> %{name: "Some User", email: "user@example.com", password: "*********"}
如何将其加载到%User{}
结构中(希望使用一些Rubyish长生不老药)?
我目前已经试过了,但都失败了。正在浏览Elixir网站上的部分
user_struct = %{ %User{} | user_map }
user_struct = %{ %User{} | Enum.to_list(user_map) }
在邮件列表中找到答案。我们可以使用以下方法:
如所述,另一种方法是使用:
注释中的警告:Map.merge无法处理结构上的强制键我认为应首选第一种方法,Map.merge无法处理强制键。^通过@RusinaRange进行的非常重要的区别
struct(User, user_map)
#=> %User{name: "Some User", email: "user@example.com", password: "*********"}
Map.merge(%User{}, user_map)
#=> %User{name: "Some User", email: "user@example.com", password: "*********"}