文档结构  
翻译进度:已翻译     翻译赏金:0 元 (?)    ¥ 我要打赏
参与翻译: CY2 (3)

源文件通常以包声明开头:

package foo.bar

fun baz() {}

class Goo {}

// ...

源文件所有内容(无论是类还是函数)都包含在声明的包内。 所以上例中 baz() 的全名是 foo.bar.bazGoo的全名是 foo.bar.Goo

如果没有指明包,该文件的内容属于无名字的默认包。

默认导入

Kotlin 文件会默认包含以下几个包:

  • kotlin.*
  • kotlin.annotation.*
  • kotlin.collections.*
  • kotlin.comparisons.* (since 1.1)
  • kotlin.io.*
  • kotlin.ranges.*
  • kotlin.sequences.*
  • kotlin.text.*
第 1 段(可获 1.19 积分)

根据目标平台还会导入额外的包:

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

导入

除了默认导入之外,每个文件可以包含它自己的导入指令。 导入语法在语法中讲述。

可以导入一个单独的名字,如:

import foo.Bar // Bar is now accessible without qualification

也可以导入一个作用域下的所有内容(包、类、对象等):

import foo.* // everything in 'foo' becomes accessible

如果出现名字冲突,可以使用 as 关键字在本地重命名冲突项来消歧义:

第 2 段(可获 0.99 积分)
import foo.Bar // Bar is accessible
import bar.Bar as bBar // bBar stands for 'bar.Bar'

关键字 import 并不仅限于导入类;也可用它来导入其他声明:

与 Java 不同,Kotlin 没有单独的 "import static" 语法; 所有这些声明都用 import 关键字导入。

顶层声明的可见性

如果顶层声明是 private 的,它是声明它的文件所私有的(参见 可见性修饰符)。

第 3 段(可获 0.94 积分)

文章评论