![Kotlin从入门到进阶实战](https://wfqqreader-1252317822.image.myqcloud.com/cover/633/26793633/b_26793633.jpg)
上QQ阅读APP看书,第一时间看更新
2.5 包声明
我们在*.kt源文件开头声明package命名空间。例如,在PackageDemo.kt源代码中,按照如下方式声明包:
![](https://epubservercos.yuewen.com/317ECE/15253386404112206/epubprivate/OEBPS/Images/Figure-P50_41493.jpg?sign=1738917437-aG8bFFmHKHUoUf8wTWOUZNsRCUGq4hC4-0-79d7801244e50e468cf32d00bb2adfc1)
Kotlin中的目录与包的结构无须匹配,源代码文件可以在文件系统中的任意位置。
如果一个测试类PackageDemoTest与PackageDemo在同一个包下面,我们就不需要单独去导入类和包级函数,可以在代码里直接调用。
![](https://epubservercos.yuewen.com/317ECE/15253386404112206/epubprivate/OEBPS/Images/Figure-P50_46634.jpg?sign=1738917437-ooY0eASJzmQJzbh6IS62jSXBBjZFheBT-0-5340f89c92f46705f6f62d9f98b2e21e)
其中,what()函数与PackageDemoTest类在同一个包命名空间下,因此可以直接调用,不需要导入。Motorbike类与PackageDemoTest类同理分析。
如果不在同一个包下面,我们就需要导入对应的类和函数。例如,我们在src\test\kotlin目录下新建一个package com.easy.kotlin.test,使用package com.easy.kotlin下面的类和函数,示例如下:
![](https://epubservercos.yuewen.com/317ECE/15253386404112206/epubprivate/OEBPS/Images/Figure-P51_41492.jpg?sign=1738917437-LxYFtkx6Qe2GdkseXm1sPrDI2mhQv48W-0-a23f6c7a3cc5716950345a875c4fd29e)
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.*