- Kotlin从入门到进阶实战
- 陈光剑
- 305字
- 2025-02-25 06:42:25
2.5 包声明
我们在*.kt源文件开头声明package命名空间。例如,在PackageDemo.kt源代码中,按照如下方式声明包:

Kotlin中的目录与包的结构无须匹配,源代码文件可以在文件系统中的任意位置。
如果一个测试类PackageDemoTest与PackageDemo在同一个包下面,我们就不需要单独去导入类和包级函数,可以在代码里直接调用。

其中,what()函数与PackageDemoTest类在同一个包命名空间下,因此可以直接调用,不需要导入。Motorbike类与PackageDemoTest类同理分析。
如果不在同一个包下面,我们就需要导入对应的类和函数。例如,我们在src\test\kotlin目录下新建一个package com.easy.kotlin.test,使用package com.easy.kotlin下面的类和函数,示例如下:

Kotlin会默认导入一些基础包到每个Kotlin文件中:
kotlin.* kotlin.annotation.* kotlin.collections.* kotlin.comparisons.* (自1.1起) kotlin.io.* kotlin.ranges.* kotlin.sequences.* kotlin.text.*
根据目标平台还会导入额外的包。
JVM平台上会默认导入下面的包:
java.lang.* kotlin.jvm.*
JS平台上会默认导入下面的包:
kotlin.js.*