Kotlin Reference: Packages
可以在源文件的开头进行包声明:
[code lang=”kotlin”]package foo.bar
fun baz() {}
class Goo {}
// …[/code]
源文件中的全部内容(如类和函数)都包含在所声明的包中。在上面的例子中,函数 baz()
的全名为 foo.bar.baz
,类 Goo
的全名为 foo.bar.Goo
。
如果没有指定所属的包,则该文件的内容属于没有名称的“默认”包。
Default Imports
下面所列的包会默认导入到每个 Kotlin 文件中:
- kotlin.*
- kotlin.annotation.*
- kotlin.collections.*
- kotlin.comparisons.* (since 1.1)
- kotlin.io.*
- kotlin.ranges.*
- kotlin.sequences.*
- kotlin.text.*
对于具体的目标平台,还会导入额外的包:
- JVM:
- java.lang.*
- kotlin.jvm.*
- JS:
- kotlin.js.*
Imports
除了默认导入的包,每个文件也可以包含自己的导入指令。Grammar 中描述了导入所使用的语法。
可以导入单个名称:
[code lang=”kotlin”]import foo.Bar // Bar is now accessible without qualification[/code]
也可以导入整个作用域(包、类、object 等)内所有可以访问的内容:
[code lang=”kotlin”]import foo.* // everything in ‘foo’ becomes accessible[/code]
如果存在命名冲突,可以使用 as
关键字在本地为冲突的对象进行重命名,以消除歧义:
[code lang=”kotlin”]import foo.Bar // Bar is accessible
import bar.Bar as bBar // bBar stands for ‘bar.Bar'[/code]
import 关键字并不仅限于导入类,还可以用它来导入其他声明,如:
Kotlin 中的所有声明的导入都通过常规的 import 关键字进行,没有单独的静态导入(import static)语法,这一点与 Java 不同。
Visibility of Top-level Declarations
如果把一个顶层声明标记为 private
,则该声明为文件私有(见可见性修饰)。