sách gpt4 ai đã đi

file - Groovy(文件IO): find all files and return all files - the Groovy way

In lại 作者:行者123 更新时间:2023-12-04 04:50:48 34 4
mua khóa gpt4 Nike

好吧,这应该很容易...

我是groovy的新手,我希望实现以下逻辑:

def testFiles = findAllTestFiles();

到目前为止,我想出了下面的代码,该代码可以成功打印所有文件名。但是,除了打印之外,我只需要将它们放入集合中即可。当然,我可以使用旧的Java方法执行此操作:只需实例化一个集合,添加所有元素并返回它。但是,那不会教我任何东西。

那么,您如何通过酷炫的“时髦”方式来做到这一点?
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
trả về giá trị null;
}

我希望在Groovy中使用尽可能少的代码来实现findAlltestFiles(),同时仍保持可读性。

1 Câu trả lời

我会尽量避免完全构建馆藏。使用闭包,您可以将逻辑分开以从文件中实际选择要使用的文件中进行选择,如下所示:

import groovy.io.FileType

def 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 }

关于file - Groovy(文件IO): find all files and return all files - the Groovy way,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4055339/

34 4 0
行者123
Hồ sơ cá nhân

Tôi là một lập trình viên xuất sắc, rất giỏi!

Nhận phiếu giảm giá Didi Taxi miễn phí
Mã giảm giá Didi Taxi
Giấy chứng nhận ICP Bắc Kinh số 000000
Hợp tác quảng cáo: 1813099741@qq.com 6ren.com