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)
上的關閉一起工作?