Kotlin 包管理

来源:互联网 发布:mysql 5.7.20安装教程 编辑:程序博客网 时间:2024/05/22 06:36

本文主要内容翻译自Kotlin references。

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

package foo.barfun 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的,那么该声明只能在对应的源文件中使用。

原创粉丝点击