遍历Enum时出错

时间:2017-11-02 05:51:56

标签: elixir

我得到了以下变量

variant_option= {"option", [{"value", "www.abc.com"}, {"data-value", "5"}], ["Select"]}

我要做的是获得第3个元素 - >的( “选择”)

variant_option
   |> Enum.each(fn {"option", _, var} ->
      Mix.shell.info var              
   end)

但是我得到了这个错误

protocol Enumerable not implemented for {\"option\",...........}

3 个答案:

答案 0 :(得分:3)

你有一个元组,而不是元组列表。您的代码将使用列表:

variant_option = [{"option", [{"value", "www.abc.com"}, {"data-value", "5"}], ["Select"]}]

或者,如果您只有一个元组,则可以直接匹配模式:

variant_option = {"option", [{"value", "www.abc.com"}, {"data-value", "5"}], ["Select"]}
{"option", _, var} = variant_option
IO.inspect var

答案 1 :(得分:1)

一些简单的管道怎么样?

variant_option 
|> Tuple.to_list 
|> Enum.at(2) 
|> List.first

它将根据需要返回"Select"

答案 2 :(得分:1)

实现目标的最简洁方法是

variant_option
|> elem(2)
|> Mix.shell.info()