源文件可以從包聲明開(kāi)始:
package foo.bar
fun baz() {}
class Goo {}
// ...
源文件的所有內(nèi)容(如類(lèi)和函數(shù))都包含在聲明的包中。 所以,在上面的例子中,baz()的全稱(chēng)是foo.bar.baz,而Goo的全稱(chēng)是foo.bar.Goo。
如果沒(méi)有指定包,則這樣的文件的內(nèi)容屬于沒(méi)有名稱(chēng)的“default”包。
默認(rèn)情況下,將多個(gè)軟件包導(dǎo)入到每個(gè)Kotlin文件中:
kotlin.*kotlin.annotation.*kotlin.collections.*kotlin.comparisons.* (since 1.1)kotlin.io.*kotlin.ranges.*kotlin.sequences.*kotlin.text.*根據(jù)目標(biāo)平臺(tái)導(dǎo)入其他軟件包:
JVM
java.lang.*kotlin.jvm.*JS
kotlin.js.*除了默認(rèn)導(dǎo)入,每個(gè)文件可能包含其自己的導(dǎo)入指令。有關(guān)導(dǎo)入語(yǔ)法的描述:(http://www.yiibai.com/kotlin/grammar.html
可以導(dǎo)入單個(gè)名稱(chēng),例如:
import foo.Bar // Bar is now accessible without qualification
或包范圍的所有可訪問(wèn)內(nèi)容(包,類(lèi),對(duì)象等):
import foo.* // everything in 'foo' becomes accessible
如果有名字沖突,可以通過(guò)使用as關(guān)鍵字來(lái)本地重命名沖突實(shí)體來(lái)消除歧義:
import foo.Bar // Bar is accessible
import bar.Bar as bBar // bBar stands for 'bar.Bar'
import關(guān)鍵字不限于導(dǎo)入類(lèi); 也可以使用它來(lái)導(dǎo)入其他聲明:
與Java不同,Kotlin沒(méi)有單獨(dú)的“import static”語(yǔ)法; 所有這些聲明都使用常規(guī)import關(guān)鍵字導(dǎo)入。
如果頂級(jí)聲明被標(biāo)記為“private”,則對(duì)其聲明的文件是私有的(請(qǐng)參閱“可見(jiàn)性修飾符”)。