Kotlin包

源文件可以從包聲明開始:

package foo.bar

fun baz() {}

class Goo {}

// ...

源文件的所有內容(如類和函數)都包含在聲明的包中。 所以,在上面的例子中,baz()的全稱是foo.bar.baz,而Goo的全稱是foo.bar.Goo

如果沒有指定包,則這樣的文件的內容屬於沒有名稱的「default」包。

默認導入

默認情況下,將多個軟件包導入到每個Kotlin文件中:

  • kotlin.*
  • kotlin.annotation.*
  • kotlin.collections.*
  • kotlin.comparisons.* (since 1.1)
  • kotlin.io.*
  • kotlin.ranges.*
  • kotlin.sequences.*
  • kotlin.text.*

根據目標平臺導入其他軟件包:

  1. JVM

    • java.lang.*
    • kotlin.jvm.*
  2. JS

    • kotlin.js.*

導入

除了默認導入,每個文件可能包含其自己的導入指令。有關導入語法的描述:(http://www.yiibai.com/kotlin/grammar.html#import)。

可以導入單個名稱,例如:

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關鍵字不限於導入類; 也可以使用它來導入其他聲明:

  • 頂層的函數和屬性;
  • 在對象聲明中聲明的函數和屬性;
  • 枚舉常數

與Java不同,Kotlin沒有單獨的「import static」語法; 所有這些聲明都使用常規import關鍵字導入。

頂層聲明的可見性

如果頂級聲明被標記爲「private」,則對其聲明的文件是私有的(請參閱「可見性修飾符」)。