我正在尝试从FileScanner(http://docs.groovy-lang.org/latest/html/api/org/codehaus/groovy/ant/FileScanner.html)中找到Groovy中给定索引的项目。以下闭包有效,但我不知道如何让它“返回”文件名:
def getFileNameByIndex = { int fileIndex ->
scanner.eachWithIndex { fileName, index ->
if (index == fileIndex)
println "${index}. Filename ${fileName}"
// how do I return the fileName here?
}
}
我应该可以将其命名为:getFileNameByIndex(10),其中10是索引。
有人可以帮忙吗?
答案 0 :(得分:1)
为什么不这样做:
def getFileNameByIndex = { int fileIndex ->
list[fileIndex]?.fileName
}
因为它是扫描仪,而不是列表,我认为你需要:
def getFileNameByIndex = { int fileIndex ->
int idx = 0
scanner.find { idx++ == fileIndex }?.name
}