android - 在Android Gradle build.gradle it.buildConfigField中的 "it"是什么?

标签 android gradle groovy

我搜索了Gradle官网和Android Developer官网,都没有找到这个问题的答案。

  1. 在 android build.gradle 中,“它”是什么。在下面的 buildConfigField 方法中?这是一个对象的实例吗?

我发现将 buildConfigField 方法向上移动到 defaultConfig 可以让我在没有“它”的情况下使用该方法。

  1. 两者有什么区别?为什么我可能会使用一种方法而不是另一种方法?

    android {
        ...
    
        defaultConfig {
        ...
    
            buildConfigField 'String', 'API_KEY', MyApiKey
        }
        buildTypes {
            release {
                ...
            }
        }
        buildTypes.all {
            ...
        }
        buildTypes.each {
            ...
    
            it.buildConfigField 'String', 'API_KEY', MyApiKey
        }
    }
    

最佳答案

Gradle 构建脚本是增强型 Groovy 脚本。当您在 Groovy 脚本或 Gradle 构建脚本中看到“它”时,它代表传递到闭包中的对象。在您的示例中,闭包是传递给“each”的“{...}”。因此,它遍历“buildTypes”集合(或可迭代的东西),将每个条目传递给闭包,并且您将传递的对象引用为“它”。您可以更改传递给闭包的对象的名称,但默认情况下是“它”。

关于android - 在Android Gradle build.gradle it.buildConfigField中的 "it"是什么?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38134967/

相关文章:

grails - 覆盖 grails.views.default.codec ='html' 配置回 'none'

gradle - 跳过任务,因为它没有源文件

java - Groovy 生成的类名

Android Studio - Google map 在真正的 Android 设备上发布 apk 时仍为空白

android - Gradle 依赖 : How to figure out what's causing this duplication

java - Gradle 构建失败并显示 'unable to find valid certification path to requested target'

gradle - 如何读取 buildSrc 模块资源文件夹中的属性文件?

android - 如何仅获取 TextView 中数组内的值

java - 在 ListView 中在 TextView 旁边显示 ImageView

android - 如何编写 Android 应用程序来执行 sysfs 读/写。?