Ruby 使用';每个';有时是强制性的,有时不是CSV
我正在使用csv gem,如下所示 一旦我计算了Ruby 使用';每个';有时是强制性的,有时不是CSV,ruby,loops,csv,each,Ruby,Loops,Csv,Each,我正在使用csv gem,如下所示 一旦我计算了CSV.parse,就必须使用每个循环得到的数组。这项工作: 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时,可以使
CSV.parse
,就必须使用每个
循环得到的数组
。这项工作:
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
时,可以使用每个
:
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"}
给出了相同的结果。原因是什么?这一点得到了明确的解释:
当使用块调用时,将对行进行迭代CSV::parse
当在没有块的情况下调用时,返回一个行数组(然后可以对其进行迭代)CSV::parse
当使用块调用时,将对行进行迭代CSV::parse
当在没有块的情况下调用时,返回一个行数组(然后可以对其进行迭代)CSV::parse