Groovy(文件IO):查找所有文件并返回所有文件 – Groovy方式

Groovy(文件IO):查找所有文件并返回所有文件 – Groovy方式,第1张

概述好的,这应该很容易…… 我是groovy的新手,我正在寻求实现以下逻辑: def testFiles = findAllTestFiles(); 到目前为止,我已经提出了下面的代码,它成功地打印了所有文件名.但是,我只需要将它们放入集合中,而不是打印.当然,我可以用旧的java方式做到这一点:只是实例化一个集合,添加所有元素并返回它.但是,那不会教我任何东西. 那么你如何以酷炫的“Groovy”方 好的,这应该很容易……

我是groovy的新手,我正在寻求实现以下逻辑:

def testfiles = findAllTestfiles();

到目前为止,我已经提出了下面的代码,它成功地打印了所有文件名.但是,我只需要将它们放入集合中,而不是打印.当然,我可以用旧的java方式做到这一点:只是实例化一个集合,添加所有元素并返回它.但是,那不会教我任何东西.

那么你如何以酷炫的“Groovy”方式做到这一点呢?

static file[] findAllTestfiles() {    def directory = new file("src/test/java");    def closure = {file f -> if(f.name =~ /Test\.java$/) println f }    directory.eachfileRecurse fileType.fileS,closure    return null;}

我希望在Groovy中使用尽可能少的代码实现findAlltestfiles(),同时仍然可读.

解决方法 我试图避免完全建立集合.使用闭包,您可以分离逻辑以从您实际想要使用它们的文件中选择文件,如下所示:

import groovy.io.fileTypedef withEachTestfile(Closure closure) {    new file("src/test/java").eachfileRecurse(fileType.fileS) {        if (it.name =~ /Test\.java$/) {            closure.call(it)        }    }}

然后,如果您想对测试文件执行某些 *** 作,则可以直接执行此 *** 作而无需在内存中构建列表:

withEachTestfile() { println it }

或者如果您真的想要列表,您可以使用任何有意义的集合轻松生成它:

def files = []withEachTestfile() { files << it }
总结

以上是内存溢出为你收集整理的Groovy(文件IO):查找所有文件并返回所有文件 – Groovy方式全部内容,希望文章能够帮你解决Groovy(文件IO):查找所有文件并返回所有文件 – Groovy方式所遇到的程序开发问题。

如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。

欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/langs/1241049.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-06-06
下一篇 2022-06-06

发表评论

登录后才能评论

评论列表(0条)

保存