按 Groovy 中的索引从 FileScanner 中查找项目

Find item from FileScanner by index in Groovy

我正在尝试从 FileScanner (http://docs.groovy-lang.org/latest/html/api/org/codehaus/groovy/ant/FileScanner.html) 中为 Groovy 中的给定索引查找项目。以下闭包有效,但我不确定如何将其设为 "return" 文件名:

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 是索引。

有人可以帮忙吗?

为什么不直接做:

def getFileNameByIndex = { int fileIndex ->
  list[fileIndex]?.fileName
}

由于它是一个扫描器,而不是一个列表,我认为您需要:

def getFileNameByIndex = { int fileIndex ->
    int idx = 0
    scanner.find { idx++ == fileIndex }?.name
}