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

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/svg/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
List 在嵌入式Elixir中迭代列表_List_Elixir - Fatal编程技术网

List 在嵌入式Elixir中迭代列表

List 在嵌入式Elixir中迭代列表,list,elixir,List,Elixir,我目前正在试用嵌入式elixir(在我的例子中是.html.eex文件)。我知道如何呈现elixir散列,但我不知道如何创建显示列表中所有项目的内容。在Ruby中,它的工作原理如下: <% array.each do |item| %> <p> <%= item %> </p> <% end %> 长生不老药的等效物是 <%= for item <- list do %> <p><

我目前正在试用嵌入式elixir(在我的例子中是.html.eex文件)。我知道如何呈现elixir散列,但我不知道如何创建显示列表中所有项目的内容。在Ruby中,它的工作原理如下:

<% array.each do |item| %>
    <p> <%= item %> </p>
<% end %> 


长生不老药的等效物是

<%= for item <- list do %>
  <p><%= item %></p>
<% end %>

我很好奇使用模块是否可以实现这一点,因为Patrick Oscity的答案依赖于它,而这看起来只是模块的包装

答案是肯定的。我第一次试了一下。它神秘地只将
ok
打印到屏幕上,但这就是它的作用;它总是返回
:ok
原子

我认为这是一个更好的方法,因为它会返回一个结果列表。看一看:

<%= Enum.map(@list, fn(item) -> %>
  <p><%= item %></p>
<% end) %>
%>

EEx
的工作原理与
ERB
几乎相同。在
ERB
示例中,您向
每个
函数传递了一个类似于lambda或匿名函数的“块”。在我的
EEx
示例中,
fn(item)->
取代了
do | item


因此,现在,您不仅可以迭代,还可以尝试使用更广泛的函数,这些函数采用匿名函数来操纵模板。

“for循环需要一个=”?你是说是的,开始的标签!我试图说得更清楚些。如果您能想出更好的表达方式,欢迎您提出编辑建议!:)工作起来很有魅力。感谢you@PatrickOscity别担心;我只是想确认我对你的理解是正确的。事实上,它的工作原理非常类似于
ERB
stuff:)但有一件事——它应该是
%>
;)