包和导入
一个源文件通常可能是以包声明开始:
package org.example
fun printMessage() { /*...*/ }
class Message { /*...*/ }
// ...
源文件的所有内容,如类和函数,都包含在这个包中。 因此,在上面的示例中, printMessage()
的全名是 org.example.printMessage
, 而 Message
的全名是 org.example.Message
。
如果没有指定包,这种文件的内容将属于没有名称的 默认 包。
默认导入
每个 Kotlin 文件默认导入了一些包:
根据目标平台,还会导入一些其他的包:
JVM:
java.lang.*
JS:
导入
除了默认导入外,每个文件都可以包含自己的 import
指令。
你可以导入单个名称:
import org.example.Message // 现在可以直接访问 Message,无需限定符
或者导入一个作用域范围内的所有可访问内容:包、类、对象等:
import org.example.* // 'org.example' 中的所有内容都变得可访问
如果存在名称冲突,可以使用 as
关键字进行消歧义,将冲突的实体在本地重命名:
import org.example.Message // Message 可以访问
import org.test.Message as TestMessage // TestMessage 代表 'org.test.Message'
import
关键字不仅限于导入类,还可以用于导入其他声明:
顶层声明的可见性
如果顶层声明标记为 private
,它对声明所在的文件是私有的(参见可见性修饰符)。
Last modified: 26 十一月 2024