所以我最近开始尝试Kotlin,我偶然发现了这个:
如果顶级声明被标记为私有,则它对声明的包是私有的(请参阅可见性修饰符).由于包真正嵌套在Kotlin中,即包foo.bar被认为是foo的成员,如果某个包在包中是私有的,则它的所有子包都是可见的.
请注意,默认情况下不会导入外部包的成员,即在包foo.bar中的文件中,我们无法在不导入它们的情况下访问foo的成员.来自:可见性和包嵌套
那么让我们考虑以下示例:
File1.kt
package foo
private fun bar() = println("This is bar!!!")
Run Code Online (Sandbox Code Playgroud)
和File2.kt
package foo.baz
import foo.bar
fun main(args: Array<String>) = bar()
Run Code Online (Sandbox Code Playgroud)
根据我的理解,函数bar()应该在包foo.baz中可见,因此可以从main()调用.但是当我尝试编译上面的内容时,我收到以下错误消息:
错误:Kotlin:无法访问'bar':'foo'中的'私有'
这是一个错误还是语言规范已更新且文档没有?我错过了什么吗?
提前致谢.
| 归档时间: |
|
| 查看次数: |
593 次 |
| 最近记录: |