簡體   English   中英

在嵌入式 Elixir 中迭代列表

[英]Iterate over list in embedded Elixir

我目前正在嘗試嵌入式長生不老葯(在我的例子中是 .html.eex 文件)。 我知道如何呈現 elixir 哈希,但我不知道如何創建顯示列表中所有項目的內容。 在 Ruby 中,它會像這樣工作:

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

Elixir 的等價物是

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

請注意,您必須在 Elixir 的for前面使用<%=

我很好奇這是否可以使用Enum模塊,因為 Patrick Oscity 的答案依賴於Comprehensions ,它看起來只是Enum模塊的包裝器。

答案是肯定的。 我首先嘗試使用Enum.each 這神秘地只印ok屏幕,但是這就是Enum.each做; 它總是返回:ok原子。

我認為Enum.map會更好,因為它返回結果列表。 看一看:

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

EEx工作原理與ERB幾乎相同。 在您的ERB示例中,您將一個類似於 lambda 或匿名函數的“塊”傳遞給each函數。 在我的EEx示例中, fn (item) ->代替了do |item| .

所以現在,您不僅可以迭代Lists ,還可以試驗更多種類的函數,這些函數采用匿名函數來操作模板。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM