Kotlin内部可见性修改器的范围

我有一个理解内部访问修饰符的问题。 在我的例子中,我不能产生任何与公众不同的情况。 即使我创建了一个罐子,我也可以从罐子外部(从与罐子中使用的不相关的一个不同的包装)访问罐子内部的功能。 在文档中使用术语模块,但我无法找出模块是什么。

我的问题是:

  1. kotlin中的模块是什么?

  2. 访问修饰符内部与公共修饰符有什么不同?

Kotlin编译器版本M8(0.8.11)忽略模块,更确切地说,它的工作方式好像所有的代码都放在同一个模块中一样,这就是为什么你不能得到internal可见性错误的原因。

从下一个里程碑版本开始,您创建的每个IDE模块都有自己的可见性范围,并且当您尝试从另一个模块中的某个模块访问internal声明时,会出现错误。 另一方面,公众在整个项目中都是可见的。

更新 :这在M8中尚未开启,稍后推迟

更新 :这是自Kotlin后来的里程碑和贝塔斯以来,已经开启