gpt4 book ai didi

groovy - 从 Groovy 中的函数调用闭包的委托(delegate)方法?

转载 作者:行者123 更新时间:2023-12-03 04:06:32 25 4
gpt4 key购买 nike

在 Gradle 脚本中,我有一个带有委托(delegate)的 Groovy 闭包,并且我在该委托(delegate)上创建了一个函数调用方法,如下所述:

// Simplified example
ant.compressFiles() {
addFile(file: "A.txt")
addFile(file: "B.txt")
addAllFilesMatching("C*.txt", getDelegate())
}

def addAllFilesMatching(pattern, closureDelegate) {
// ...
foundFiles.each {
closureDelegate.addFile(file: it)
}
}

是否有可能以更漂亮的方式做到这一点,而不必将委托(delegate)传递给函数?例如,是否可以使用新方法以某种方式扩展委托(delegate)?

最佳答案

这可以通过创建一个返回 Closure 的函数来解决。 :

ant.compressFiles() addAllFilesMatching("A.txt", "B.txt", "C*.txt")

Closure addAllFilesMatching(String... patterns) {
// Calculate foundFiles from patterns...
return {
foundFiles.each { foundFile ->
addFile(file: foundFile)
}
}
}

关于groovy - 从 Groovy 中的函数调用闭包的委托(delegate)方法?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17680442/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com