[英]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.