gpt4 book ai didi

elixir - 将循环的结果保存到变量列表中

转载 作者:行者123 更新时间:2023-12-02 07:13:13 25 4
gpt4 key购买 nike

我想插入一组相似的实体并一次性获取每个实体的 id。我正在尝试这个:

q1 = "question1"
q2 = "question2"
q3 = "question3"
q4 = "question4"

Enum.each([q1, q2, q3, q4], &(Repo.insert!(......)))

# working with q1 and id of q1
# .......


# working with q2 and id of q2
# .......

# and so on

是否有任何方法可以创建第二个变量列表,用于存储 Repo.insert 返回的结果模型?如果没有,那么我将如何访问每个插入模型的“id”:q1-q4?或者我应该将它们一一插入,这样会更容易、更直接吗?

最佳答案

您正在寻找Enum.map/2 :

ids = [q1, q2, q3, q4]
|> Enum.map(&Repo.insert!(......))
|> Enum.map(&Map.get(&1, :id))
<小时/>

您还可以按步骤执行此操作:

structs = Enum.map([q1, q2, q3, q4], &Repo.insert!(......))
ids = Enum.map(ids, &Map.get(&1, :id))

关于elixir - 将循环的结果保存到变量列表中,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43018904/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com