gpt4 book ai didi

android-studio - gradle 中的 'all' 和 'each' 有什么区别?

转载 作者:行者123 更新时间:2023-12-03 15:51:42 25 4
gpt4 key购买 nike

我正在使用 Android Studio 和 Gradle 构建脚本。当我要更改一些设置时,我需要迭代一些字段。但是我不是很清楚all之间的区别和 each .

例如,我搜索了一些代码来更改输出 apk 文件名。代码迭代 applicationVariants来自 allvariant.outputs来自 each :

applicationVariants.all { variant ->
variant.outputs.each { output ->
output.outputFile = new File(output.outputFile.parent, "MyApp.apk")
}
}

最佳答案

each是一个普通的 groovy 构造。它用于迭代给定的对象,不修改它(原始对象)并在完成后返回(未更改的)对象。看:

assert [1, 2, 3] == [1, 2, 3].each { println it }

虽然 all是gradle自己添加的一个方法。所以, android插件添加 this扩展,其中有 getApplicationVariants 方法。由于 groovy 允许省略 get , 只是 applicationVariants可以使用。现在,提到的扩展使用 this类来保留变体的集合,它扩展 - this .在后者 all方法已定义,据我所知,它只是一个批处理。

关于android-studio - gradle 中的 'all' 和 'each' 有什么区别?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31802752/

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