gradle构建脚本定义如下:
4.times { counter ->
task "task$counter" << {
println "I'm task number $counter"
}
}
定义 4 个不同的任务,名称为 task1、task2、task3、task4
。那么 4.times
到底是什么?在这种情况下,它是否只是一个应用 1 个参数并调用 4 次的闭包?
那么它只是一个语法糖吗?
最佳答案
4.times
并不完全是一个闭包,而是一个循环包装器。使用此语句,您告诉执行给定闭包 4 次。在这种情况下,给定的闭包是以下代码:
{ counter ->
task "task$counter" << {
println "I'm task number $counter"
}
}
它创建一个任务,该任务的名称中传递了一个参数(计数器)。清楚了吗?
这里是docs for times 方法,为 Number 类定义。如您所见,您可以在 number 实例上调用它并传递闭包。在这种特殊情况下,传递的闭包创建了一个任务。
关于java - 4.times闭包的理解,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26077783/