变量$it in Gradle任务:参考:行动手册中的Gradle

变量$it in Gradle任务:参考:行动手册中的Gradle,gradle,groovy,build.gradle,Gradle,Groovy,Build.gradle,当我翻阅这本书时,我遇到了这一行 Groovy自动公开一个名为it的隐式变量来指示 循环迭代索引 来自Gradle in Action手册,第2章清单2.1 该行表示$it表示循环迭代索引。然而,当我尝试添加 $it要打印任务yayGradle0/1/2的语句,它会打印出任务,而不是索引。我对这种行为感到困惑。请导游 3.times{ task "yayGradle$it" <<{ println 'Gradle rocks--->>>'+"

当我翻阅这本书时,我遇到了这一行

Groovy自动公开一个名为it的隐式变量来指示 循环迭代索引

来自Gradle in Action手册,第2章清单2.1

该行表示$it表示循环迭代索引。然而,当我尝试添加
$it
要打印任务yayGradle0/1/2的语句,它会打印出任务,而不是索引。我对这种行为感到困惑。请导游

3.times{
    task "yayGradle$it" <<{
        println 'Gradle rocks--->>>'+"$it"
    }
}
(重读后编辑)

它是循环中的索引

从槽壳

  3.times  {
    println "${it}"
  }

0
1
2
在您的代码中有另一个闭包,它成为该闭包的变量(即任务名称)

下面的示例在顶层使用显式变量

3.times{ counter->
    task "hello${counter}" <<{
        println 'Gradle rocks--->>>'+" ${it}  ${counter}"
    }
}
3.次{计数器->
任务“hello${counter}”>>任务:hello2'2

参考资料

(重读后编辑)

它是循环中的索引

从槽壳

  3.times  {
    println "${it}"
  }

0
1
2
在您的代码中有另一个闭包,它成为该闭包的变量(即任务名称)

下面的示例在顶层使用显式变量

3.times{ counter->
    task "hello${counter}" <<{
        println 'Gradle rocks--->>>'+" ${it}  ${counter}"
    }
}
3.次{计数器->
任务“hello${counter}”>>任务:hello2'2

参考资料


您在不同的上下文中使用了
it
变量。在您的案例中,您是在任务的
结束
的上下文中工作的。因此,
it
表示不同的对象,即
org.gradle.api.task
实例。这将有助于参考。请参见。

您正在使用
it变量位于不同于的上下文中。在您的情况下,您是在任务的
结束
上下文中工作的。因此,
表示不同的对象,即
org.gradle.api.task
实例。这将有助于参考。另请参阅