Kotlin學習之-4.3.2 包管理
Kotlin源文件是以包定義開頭的:
package foo.bar
fun baz() {}
class Goo() {}
// ...
所有源文件中的的內容包括類和函數都在定義的包中。所以在上面的例子中,函數baz()
的全名是foo.bar.baz
, 類Goo
的全名是foo.bar.Goo
。
如果包沒有定義,那麼源文件的內容將全部屬於”默認”包下, 該”默認”包沒有名稱。
默認包引入 Default Imports
下面的包是被默認引入到全部kotlin文件中的:
- kotlin.*
- kotlin.annotation.*
- kotlin.collections.*
- kotlin.comparisons.* (since 1.1)
- kotlin.io.*
- kotlin.ranges.*
- kotlin.sequences.*
- kotlin.text.*
下面的附加包是根據目標平臺情況添加的:
- JVM:
- java.lang.*
- kotlin.jvm.*
- JS:
- kotlin.js.*
普通包引入
除了上述默認包引入之外,每個源文件可以包含自己的包文件夾。引入包的語法詳見語法
我們可以引入一個名字,例如:
import foo.Bar // Bar 可以直接訪問,不需要前綴
也可以是一個範圍
import foo.*
如果有名稱衝突,我們可以使用新的關鍵字來替換舊的有衝突的名稱。
import foo.Bar
import bar.Bar as otherBar // otherBar 代表 'bar.Bar'
關鍵字import
不是僅用於引入類, 還可以用它來引入其他聲明:
- 頂級的函數和屬性
- 定義的對象聲明區的函數和屬性
- 枚舉常量
和Java不同的是,Kotlin沒有單獨的靜態引入import static
語法, 所有這些聲明都是通過import
關鍵字來引入的
頂級聲明的可見性
如果一個頂級聲明被標記爲私有的private
,那這個聲明僅會在該文件中可見。詳見可見性