![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=1739342294-8Yn3d5Bxqp725HN4NyXsPbY7zwri9qmE-0-9dae50ebccf796db19755e4ce9bc554c)
Kotlin中的目录与包的结构无须匹配,源代码文件可以在文件系统中的任意位置。
如果一个测试类PackageDemoTest与PackageDemo在同一个包下面,我们就不需要单独去导入类和包级函数,可以在代码里直接调用。
![](https://epubservercos.yuewen.com/317ECE/15253386404112206/epubprivate/OEBPS/Images/Figure-P50_46634.jpg?sign=1739342294-MlmTgyFtSURpYoPYztB7sqOG5IOx4gGz-0-7f321fcc2ac4d25df3bebedce76bf995)
其中,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=1739342294-CJ9vn3M3vPI9aPch4LVwPiMQpivbxheJ-0-a7af9a8be1b8e1d892715720dbf3da99)
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.*