Kotlin 學(xué)習(xí)筆記(三) 包與導(dǎo)入
這是一個(gè)Kotlin系列的教程产弹,目的是為了使自己記憶和理解的更加深刻,將會(huì)添加對(duì)應(yīng)的Java代碼用于對(duì)比學(xué)習(xí)和更好的理解洲守。
目錄
包
源文件通常以包聲明開(kāi)頭:
package foo.bar
fun baz() {}
class Goo {}
// ……
源文件所有內(nèi)容(無(wú)論是類還是函數(shù))都包含在聲明的包內(nèi)片酝。 所以上例中 baz()
的全名是 foo.bar.baz
固耘、Goo
的全名是 foo.bar.Goo
葬毫。
如果沒(méi)有指明包镇辉,該文件的內(nèi)容屬于無(wú)名字的默認(rèn)包。
默認(rèn)導(dǎo)入
有多個(gè)包會(huì)默認(rèn)導(dǎo)入到每個(gè) Kotlin 文件中:
- kotlin.*
- kotlin.annotation.*
- kotlin.collections.*
- kotlin.comparisons.* (自 1.1 起)
- kotlin.io.*
- kotlin.ranges.*
- kotlin.sequences.*
- kotlin.text.*
根據(jù)目標(biāo)平臺(tái)還會(huì)導(dǎo)入額外的包:
JVM:
JS:
導(dǎo)入
除了默認(rèn)導(dǎo)入之外贴捡,每個(gè)文件可以包含它自己的導(dǎo)入指令忽肛。 導(dǎo)入語(yǔ)法在語(yǔ)法中講述。
可以導(dǎo)入一個(gè)單獨(dú)的名字烂斋,如.
import foo.Bar // 現(xiàn)在 Bar 可以不用限定符訪問(wèn)
也可以導(dǎo)入一個(gè)作用域下的所有內(nèi)容(包屹逛、類、對(duì)象等):
import foo.* // “foo”中的一切都可訪問(wèn)
如果出現(xiàn)名字沖突汛骂,可以使用 as 關(guān)鍵字在本地重命名沖突項(xiàng)來(lái)消歧義:
import foo.Bar // Bar 可訪問(wèn)
import bar.Bar as bBar // bBar 代表“bar.Bar”
關(guān)鍵字 import 并不僅限于導(dǎo)入類罕模;也可用它來(lái)導(dǎo)入其他聲明:
頂層函數(shù)及屬性;
在對(duì)象聲明中聲明的函數(shù)和屬性;
枚舉常量香缺。
與 Java 不同手销,Kotlin 沒(méi)有單獨(dú)的“import static”
語(yǔ)法; 所有這些聲明都用 import
關(guān)鍵字導(dǎo)入图张。
頂層聲明的可見(jiàn)性
如果頂層聲明是 private 的锋拖,它是聲明它的文件所私有的(參見(jiàn) 可見(jiàn)性修飾符)。