kotlin程序员Kotlin编程

Kotlin基础之包(Package)

2017-05-21  本文已影响31人  已迁至知乎_此不再维护

一个源文件需要以包声明为开头:

package foo.bar
fun baz() {}
class Goo {}
// ...

源文件的所有内容(如类和函数)都包含在声明的包中。 所以,在上面的例子中,baz()的全称是foo.bar.baz,而Goo的全称是foo.bar.Goo。

如果没有指定包,则这样的文件的内容属于没有名称的“default”包。

默认导入(Default Imports)

下述包默认情况下会被导入每一个Kotlin文件中:

  1. kotlin.*
  2. kotlin.annotation.*
  3. kotlin.collections.*
  4. kotlin.comparisons.* (since 1.1)
  5. kotlin.io.*
  6. kotlin.ranges.*
  7. kotlin.sequences.*
  8. kotlin.text.*

根据目标平台的不同会相应导入需要的其他包:

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

导入(Imports)

除了默认导入,每个文件可能包含属于该文件本身的导入指令。

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

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

或范围的所有可访问内容(包,类,对象等):

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

如果有重名冲突,我们可以通过使用as关键字来本地重命名来消除歧义:

import foo.Bar // Bar is accessible
import bar.Bar as bBar // bBar stands for 'bar.Bar'

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

  1. 顶级函数和属性
  2. 在对象声明中声明的函数和属性
  3. 枚举常数

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

顶级声明的可见性(Visibility of Top-level Declarations)

如果顶级声明被标记为“私有”,则对其声明的文件是私有的(请参阅“可见性修饰符”)。

上一篇下一篇

猜你喜欢

热点阅读