假设我有一个结构列表,其中一个 id 作为其键之一:

users = [
  %User{id: 1, attempts: 5},
  %User{id: 2, attempts: 12},
  %User{id: 3, attempts: 2}
]

使用 id == 2 将用户的尝试次数更新为 99 以获取新用户列表的最佳方法(最 Elixir 的方法)是什么:
updated_users = [
  %User{id: 1, attempts: 5},
  %User{id: 2, attempts: 99},
  %User{id: 3, attempts: 2}
]

感谢您的帮助!

最佳答案

Enum.map(users, fn
  %User{id: 2} = user -> %User{user | attempts: 99}
  user -> user
end)

您可以将其封装到某个模块中并为其取个好听的名字 :)

关于elixir - 更新结构列表的最佳方法,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/58475762/

10-14 18:40
查看更多