我在this web site之后使用csv gem。
评估CSV.parse
后,必须使用each
循环生成Array
。这有效:
csv = CSV.parse("1,2,3")
csv.each {|row| print row, ", ", row.class, ", size ", row.size, "\n"}
虽然这不起作用:
csv {|row| print row, ", ", row.class, ", size ", row.size, "\n"}
直接使用表单CSV.parse
时,使用each
:
CSV.parse("1,2,3").each {|row| print row, ", ", row.class, ", size ", row.size, "\n"}
与否:
CSV.parse("1,2,3") { |row| print row, ", ", row.class, ", size ", row.size, "\n"}
给出相同的结果。为什么呢?
答案 0 :(得分:3)
这清楚地解释了in the documentation:
User
会遍历行。CSV::parse
在没有块的情况下调用时会返回一个行数组(然后可以迭代)。