是否有一個內置的方法來寫入記錄數字,以便我不必創建一個變量並增加它?只是在這一點上開發實踐。 file.recnumber
?紅寶石做循環和迭代
<% i = 1%>
<% @files.each do |file| %>
<%= i %>. <%= file %> (<%= file.size %>)k<br />
<% i = i + 1%>
<% end %>
是否有一個內置的方法來寫入記錄數字,以便我不必創建一個變量並增加它?只是在這一點上開發實踐。 file.recnumber
?紅寶石做循環和迭代
<% i = 1%>
<% @files.each do |file| %>
<%= i %>. <%= file %> (<%= file.size %>)k<br />
<% i = i + 1%>
<% end %>
<% files.each_with_index do |file, index| %>
...
<% end %>
另一種方法是隻使用一個HTML有序列表:
<ol>
<% ["one", "two", "three"].each do |file| %>
<li>file <%= file %></li>
<% end %>
</ol>
會給你像下面這樣,你可以用CSS輕鬆風格:
1. file one
2. file two
3. file three
我想你正在尋找each_with_index
,它將索引作爲第二個參數傳遞給塊。
如果您想要做一些比each
更復雜的事情,最新版本的Ruby還包含一個with_index
方法,您可以鏈接到任何Enumerable方法以獲取帶有索引的版本。例如:
('a'..'z').map.with_index {|letter, index| "#{index} #{letter.upcase}" }
事實上,IO對象和文件對象確實有LINENO方法。
File.open("test.txt") do |file|
file.each{|line| puts "#{file.lineno}: #{line}"}
end