1
有没有人可以解释我,这段代码是如何工作的?Groovy - 关闭 - 读取CSV
class CSVParser {
static def parseCSV(file,closure) {
def lineCount = 0
file.eachLine() { line ->
def field = line.tokenize(",")
lineCount++
closure(lineCount,field)
}
}
}
use(CSVParser.class) {
File file = new File("test.csv")
file.parseCSV { index,field ->
println "row: ${index} | ${field[0]} ${field[1]} ${field[2]}"
}
}
链接:http://groovy-almanac.org/csv-parser-with-groovy-categories/
“parseCSV” 看起来就像一个方法,但在 “文件” 的封闭使用。 Closure是“parseCSV”参数之一,最容易混淆 - 在这个方法中,只有closure(lineCount,field)
没有任何内部功能。
它如何与file.parseCSV
和use(CSVParser.class)
上的关闭一起工作?