Elixir 循环遍历dict中的值
如何循环字典中的键值对并获取每个项的值?我想出了这个,但我总是出错Elixir 循环遍历dict中的值,elixir,phoenix-framework,Elixir,Phoenix Framework,如何循环字典中的键值对并获取每个项的值?我想出了这个,但我总是出错 defp进程值(票证)do IO.inspect ticket.value这不起作用 结束 Repo.all(Ticket)#获得所有门票 |>枚举.分组依据(&(&1.聚合依据id))#分组依据id |>听写列表?可能不需要? |>Enum.map(&(processValues(&1))#返回已处理的票证 看一看。我想特别提醒您注意文件的这一部分: iex> for {key, val} <- %{"a" =&
defp进程值(票证)do
IO.inspect ticket.value这不起作用
结束
Repo.all(Ticket)#获得所有门票
|>枚举.分组依据(&(&1.聚合依据id))#分组依据id
|>听写列表?可能不需要?
|>Enum.map(&(processValues(&1))#返回已处理的票证
看一看。我想特别提醒您注意文件的这一部分:
iex> for {key, val} <- %{"a" => 1, "b" => 2}, into: %{}, do: {key, val * val}
%{"a" => 1, "b" => 4}
iex>对于{key,val}1,“b”=>2},进入:%{},do:{key,val*val}
%{“a”=>1,“b”=>4}
你会想要类似的东西
for {key, value} <- ticket, do: process_values(value) # Note snake case.
对于{key,value}要指定已在模块中定义的映射函数,需要使用语法和ModuleName.function\u name/arity
。在您的情况下,它将是&processValues/1
下面是一个简化的示例来演示该概念:
list = [%{aggregate_id: 1, value: "test"}, %{aggregate_id: 2, value: "test2"}]
defmodule T do
defp processValues(ticket) do
IO.inspect ticket.value
end
def process_list(list) do
list |> Enum.map(&processValues/1)
end
end
T.process_list list