【发布时间】:2016-08-09 12:02:35
【问题描述】:
来自其他编程语言,许多像我这样的人会感到惊讶。我有一个简单的问题。我有一个列表 - 比如说,用户。我想遍历用户并显示一些信息。很简单,直到我被这个难住了:
使用 eex 模板,我试图这样做:
<%= for i <- 0..length(@users) do %>
<% user = Enum.at(@users) %>
<!-- every third user, I need to display on a new "row" -->
<%= if rem(i,3) == 0 do %>
<div class="row">
<% end %>
<!-- display user information - like user name -->
<%= user.name %>
<!-- then close out the "row" tag if we are due for starting another on the next iteration -->
<%= if rem(i+1,3) == 0 do %>
<div class="row">
<% end %>
<% end %>
首先,用户价值变成了零。不知道为什么。其次,我对此没有任何解释。
“user = Enum.at(@users, i)”和 有什么区别?在后一种情况下,用户不为零。
最后,通过列表跟踪时间并采取稍微不同的操作(如上例中的新行开始用户)的最佳方法是什么?
为了简单起见,我还忽略了这样一个事实,即我们可能没有最后一个结束“/div”标记的行(这取决于列表中的用户数量)。为了专注于手头的问题,我忽略了任何逻辑。
【问题讨论】:
标签: elixir