這是DRYest在ruby中做到這一點的方法嗎?在一行代碼中初始化和遞增一個變量
<% for item in @items %>
<%= n = n + 1 rescue n = 1 %>
<% end %>
它初始化「N」到「1" ,並作爲循環的進行遞增它(並打印出來),因爲這是一個我的應用程序的意見
這是DRYest在ruby中做到這一點的方法嗎?在一行代碼中初始化和遞增一個變量
<% for item in @items %>
<%= n = n + 1 rescue n = 1 %>
<% end %>
它初始化「N」到「1" ,並作爲循環的進行遞增它(並打印出來),因爲這是一個我的應用程序的意見
您可以使用三元運算符:
<% for item in @items %>
<%= n = n ? n+1 : 1 %>
<% end %>
但是,這取決於你想做什麼,我猜的each_with_index會更合適
<% @items.each_with_index do |item, n| %>
<%= n %>
<% end %>
嗯。
n = @items.size
你也可以依靠ruby的零強制轉換爲一個導致零的整數。
<% for item in @items %>
<%= n = n.to_i + 1 %>
<% end %>
好啊,我想第二個選擇是我在找的東西。 – Zepplock 2009-07-19 19:45:36
也有一種方法來分配一個初始值爲「n」? – Zepplock 2009-07-19 19:48:07