原文地址
Packages(包)
源文件可以從包聲明開(kāi)始:
package foo.bar
fun baz() {}
class Goo {}
// ...
所有源文件的內(nèi)容(例如類和函數(shù))被包聲明包含。所以在之上的例子當(dāng)中,baz()的全稱是foo.bar.baz,Goo的全稱是foo.bar.Goo。如果包沒(méi)被指定,這樣文件的內(nèi)容屬于沒(méi)有名稱的”default”包
Default Imports(默認(rèn)導(dǎo)入)
一些包被默認(rèn)導(dǎo)入:
? kotlin.*
? kotlin.annotation.*
? kotlin.collections.*
? kotlin.comparisons.* (since 1.1)
? kotlin.io.*
? kotlin.ranges.*
? kotlin.sequences.*
? kotlin.text.*
額外的包根據(jù)目標(biāo)平臺(tái)被引入:
- JVM:
- java.lang.*
- kotlin.jvm.*
- JS:
- kotlin.js.*
Imports(導(dǎo)入)
除了默認(rèn)導(dǎo)入,每個(gè)文件包含它自己的導(dǎo)入目錄。導(dǎo)入的語(yǔ)法在 grammar中有描述.
我們可以導(dǎo)入任一一個(gè)名稱,例如:
import foo.Bar // Bar is now accessible without qualification
或者范圍內(nèi)所有可以訪問(wèn)的內(nèi)容(包、類、對(duì)象等等)
import foo.* // everything in 'foo' becomes accessible
如若這里有命名沖突,我們可以消除沖突通過(guò)使用as關(guān)鍵字重命名沖突的實(shí)體。
import foo.Bar // Bar is accessible
import bar.Bar as bBar // bBar stands for 'bar.Bar'
import 關(guān)鍵字不限制去引用類,你也能夠使用它去引用其他聲明:
- 頂層的函數(shù)和屬性;
- 聲明在對(duì)象中的函數(shù)和屬性object declarations;
- 枚舉常量;
不像java,Kotlin沒(méi)有分開(kāi)的”import static“語(yǔ)法;當(dāng)中所有的聲明被導(dǎo)入通過(guò)使用常規(guī)的import關(guān)鍵字。
Visibility of Top-level Declarations(頂層聲明的可見(jiàn)性)
如果頂層聲明被標(biāo)記為private,它對(duì)它所聲明的文件是私有的(參看可見(jiàn)性修飾符)