Kotlin 包管理

本文介绍了Kotlin中的包管理,包括默认导入的包、用户自定义导入的方式,以及Top-level声明的可见性规则。默认导入的包有kotlin.*等,用户可以通过import导入所需内容,Kotlin不支持Java的'import static'语法。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

本文主要内容翻译自Kotlin references

Kotlin源文件的第一行可以用package声明语句来指定该源文件所属的软件包:

package foo.bar

fun baz() {}

class Goo {}

在包含package语句的源文件中,所有的内容(包括类、函数)都属于指定的包。在上述例子中,bar()的全名为foo.bar.baz(),而Goo的全名为foo.bar.Goo

如果源文件没有指定的包,那么这个源文件中的所有内容将属于一个没有名称的”default”包。

默认导入

以下package将会在所有的Kotlin源文件中被默认导入:

  • kotlin.*
  • kotlin.annotation.*
  • kotlin.collection.*
  • kotlin.comparisions.* (Kotlin 1.1以上)
  • kotlin.io.*
  • kotlin.ranges.*
  • kotlin.sequences.*
  • kotlin.text.*

如果是在特定的平台下,还会有一些额外的默认包会被引入:

  • JVM:
    • java.lang.*
    • kotlin.jvm.*
  • JS:
    • kotlin.js.*

用户自定义导入

除了默认导入的内容以外,用户可以在每一个源文件中使用import语法直接导入需要的package。

我们可以单独导入某个名称,例如:

import foo.Bar //导入Bar,在这之后,Bar可以直接使用(表示foo.bar)。

或者,我们也可导入一个包中的所有内容(子包、类、对象等等):

import foo.* //导入foo包中的所有名称都可以直接使用。

如果存在名称冲突,可以在import语句中使用as关键字来定义一个在文件作用域中有效的局部名称:

import foo.Bar // Bar可以直接使用
import foo.Bar as bBar // bBar是foo.Bar的别名

不同于Java,在Kotlin中import还可以用来导入除了类以外的其他东西。以下声明可以使用import导入:

  • Top-level 函数和属性;
  • object declerations(用于单例模式)中声明的方法和属性;
  • 枚举常量。

Kotlin中没有类似Java的 “import static”语法。

Top-level 声明的可见行


Top-level 声明是指,直接声明在源文件中与import 语句同级的声明语句,在Java中只有类才能是Top-level声明的,但是Kotlin允许变量和函数像类一样在Top-level声明。


如果一个Top-level声明是private的,那么该声明只能在对应的源文件中使用。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值