Kotlin基礎之包(Package)

一個源文件需要以包聲明為開頭:

package foo.bar
fun baz() {}
class Goo {}
// ...

源文件的所有內容(如類和函數)都包含在聲明的包中。 所以,在上面的例子中,baz()的全稱是foo.bar.baz,而Goo的全稱是foo.bar.Goo。

如果沒有指定包,則這樣的文件的內容屬于沒有名稱的“default”包。

默認導入(Default Imports)

下述包默認情況下會被導入每一個Kotlin文件中:

  1. kotlin.*
  2. kotlin.annotation.*
  3. kotlin.collections.*
  4. kotlin.comparisons.* (since 1.1)
  5. kotlin.io.*
  6. kotlin.ranges.*
  7. kotlin.sequences.*
  8. kotlin.text.*

根據目標平臺的不同會相應導入需要的其他包:

  1. JVM:
    • java.lang.*
    • kotlin.jvm.*
  2. JS:
    • kotlin.js.*

導入(Imports)

除了默認導入,每個文件可能包含屬于該文件本身的導入指令。

我們可以導入單個名稱,如:

import foo.Bar // Bar is now accessible without qualification

或范圍的所有可訪問內容(包,類,對象等):

import foo.* // everything in 'foo' becomes accessible

如果有重名沖突,我們可以通過使用as關鍵字來本地重命名來消除歧義:

import foo.Bar // Bar is accessible
import bar.Bar as bBar // bBar stands for 'bar.Bar'

import關鍵字不限于導入類; 您也可以使用它來導入其他聲明:

  1. 頂級函數和屬性
  2. 在對象聲明中聲明的函數和屬性
  3. 枚舉常數

與Java不同,Kotlin沒有單獨的“import static”語法; 所有這些聲明都使用常規import關鍵字導入。

頂級聲明的可見性(Visibility of Top-level Declarations)

如果頂級聲明被標記為“私有”,則對其聲明的文件是私有的(請參閱“可見性修飾符”)。

最后編輯于
?著作權歸作者所有,轉載或內容合作請聯系作者
平臺聲明:文章內容(如有圖片或視頻亦包括在內)由作者上傳并發布,文章內容僅代表作者本人觀點,簡書系信息發布平臺,僅提供信息存儲服務。

推薦閱讀更多精彩內容

  • Spring Cloud為開發人員提供了快速構建分布式系統中一些常見模式的工具(例如配置管理,服務發現,斷路器,智...
    卡卡羅2017閱讀 134,991評論 19 139
  • 前言 人生苦多,快來 Kotlin ,快速學習Kotlin! 什么是Kotlin? Kotlin 是種靜態類型編程...
    任半生囂狂閱讀 26,282評論 9 118
  • 本文是學習Kotlin的包相關,控制流相關以及返回與跳轉相關,與Java比較大的區別是Kotlin用when來替換...
    叫我旺仔閱讀 1,688評論 0 3
  • 對喜歡了兩年的高中同學,鼓起勇氣說出口的喜歡,得到的回應不過是,可能只是我對戀愛的錯覺,不是真的。這大概是對我最大...
    不要回頭慢慢前行閱讀 333評論 0 0
  • 和同事一起吃飯。她是個喜歡穿粉色衣服的北方姑娘,性格開朗。生活也過得很精致,現在她唯一的遺憾,就是還是單身,大概有...
    diy1947閱讀 215評論 0 1