我理解内部访问修饰符有问题.在我的例子中,我无法产生任何情况下,它的行为不同于公众.即使我创建了一个jar,我也可以从jar外部访问jar中的内部函数(从与jar中使用的包无关的另一个包).在文档中使用了术语模块,但我无法确定模块到底是什么.
因此,我的问题是:
Kotlin 的模块是什么?
内部访问修饰符与公共修饰符有何不同?
我理解内部访问修饰符有问题.在我的例子中,我无法产生任何情况下,它的行为不同于公众.即使我创建了一个jar,我也可以从jar外部访问jar中的内部函数(从与jar中使用的包无关的另一个包).在文档中使用了术语模块,但我无法确定模块到底是什么.
因此,我的问题是:
Kotlin 的模块是什么?
内部访问修饰符与公共修饰符有何不同?
Kotlin编译器版本M8(0.8.11)忽略了模块,更准确地说,它的工作原理就像所有代码都放在同一个模块中一样,这就是为什么不能得到internal
的可见性错误.
Starting with the next milestone release, every IDE module you create has its own visibility scope, and when you try to access an internal
declaration from one module in another, you get an error. Publics, on the other hand, are visible across the whole project.
UPDATE:这在M8中尚未启用,推迟到稍后
UPDATE: This has been turned on since later Kotlin milestones and betas