套件與匯入
原始碼檔案可能以套件宣告開頭:
kotlin
package org.example
fun printMessage() { /*...*/ }
class Message { /*...*/ }
// ...
原始碼檔案中的所有內容,例如類別和函數,都包含在此套件中。因此,在上述範例中,printMessage()
的完整名稱是 org.example.printMessage
,而 Message
的完整名稱是 org.example.Message
。
如果未指定套件,則此類檔案的內容屬於 預設(無名稱)套件。
預設匯入
每個 Kotlin 檔案都會預設匯入多個套件:
- kotlin.*
- kotlin.annotation.*
- kotlin.collections.*
- kotlin.comparisons.*
- kotlin.io.*
- kotlin.ranges.*
- kotlin.sequences.*
- kotlin.text.*
根據目標平台,還會匯入額外套件:
JVM:
- java.lang.*
- kotlin.jvm.*
JS:
匯入
除了預設匯入之外,每個檔案還可以包含自己的 import
指令。
您可以匯入單一名稱:
kotlin
import org.example.Message // 現在 Message 無需限定即可存取
或匯入作用域(套件、類別、物件等等)中所有可存取的內容:
kotlin
import org.example.* // 'org.example' 中的所有內容都變得可存取
如果存在名稱衝突,您可以使用 as
關鍵字來本地重新命名衝突實體以消除歧義:
kotlin
import org.example.Message // Message 可存取
import org.test.Message as TestMessage // TestMessage 代表 'org.test.Message'
import
關鍵字不僅限於匯入類別;您還可以用它來匯入其他宣告:
頂層宣告的可見性
如果頂層宣告標記為 private
,則它對於宣告該宣告的檔案是私有的(請參閱 可見性修飾符)。