什么是Kotlin模块?
在Kotlin文档中,他们提到了某种类型的模块,例如在中,用于什么是Kotlin模块?,kotlin,Kotlin,在Kotlin文档中,他们提到了某种类型的模块,例如在中,用于内部修饰符 但是,我找不到术语模块本身的任何定义。那么模块是什么意思呢 模块是一起编译的一组Kotlin源: 智能思维模块 Maven项目 梯度源集 通过一次Ant任务调用编译的一组文件 这与“可见性修改器”相同。:) 从Kotlin的角度来看,模块是一组一起编译的Kotlin文件: IntelliJ IDEA模块 Maven项目 梯度源集 通过调用Ant任务编译的一组文件 这是hotkey的,但我想补充这个答案 ,Kotli
内部
修饰符
但是,我找不到术语模块本身的任何定义。那么模块是什么意思呢
模块是一起编译的一组Kotlin源:
- 智能思维模块李>
- Maven项目李>
- 梯度源集李>
- 通过一次Ant任务调用编译的一组文件
- IntelliJ IDEA模块
- Maven项目李>
- 梯度源集
- 通过调用
Ant任务编译的一组文件
test
源集可以访问main的内部声明
这意味着,如果在Gradle配置中有不同的构建风格,导致不同的源集,例如,对于生产和调试版本,则一个源集中的内部类将无法用于另一个源集中。能否更具体一点,这是kotlin文档中的内容,但这到底意味着什么。对于一个android项目,这是否意味着整个android应用程序都可以访问一些声明为内部的东西?@s-hunter,不,不会。Android项目是用Gradle构建的,因此,
内部
可见性意味着Gradle源集(除了测试源集可以从它们测试的源集访问内部)。如果整个android项目只包含一个gradle源代码集,在大多数情况下,它是用于一个简单的应用程序,那么内部意味着整个android项目都可以访问它。我说的对吗?是的,这基本上是正确的:内部
声明不能在其他Kotlin模块中使用,但是,由于JVM方面缺乏支持,它仍然暴露在非Kotlin代码中(例如,可以在依赖于JAR的Java代码中使用)。因此,JVM在运行时不会像私有/受保护/包私有声明那样检查访问,而是由Kotlin编译器在使用站点检查访问?