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