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 循环遍历dict中的值_Elixir_Phoenix Framework - Fatal编程技术网

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