Warning: file_get_contents(/data/phpspider/zhask/data//catemap/7/elixir/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
将值从Elixir中的映射加载到结构中_Elixir - Fatal编程技术网

将值从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: "*********"}