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阅读 135,463评论 19 139
  • 前言 人生苦多,快来 Kotlin ,快速学习Kotlin! 什么是Kotlin? Kotlin 是种静态类型编程...
    任半生嚣狂阅读 26,399评论 9 118
  • 本文是学习Kotlin的包相关,控制流相关以及返回与跳转相关,与Java比较大的区别是Kotlin用when来替换...
    叫我旺仔阅读 5,581评论 0 3
  • 对喜欢了两年的高中同学,鼓起勇气说出口的喜欢,得到的回应不过是,可能只是我对恋爱的错觉,不是真的。这大概是对我最大...
    不要回头慢慢前行阅读 2,571评论 0 0
  • 和同事一起吃饭。她是个喜欢穿粉色衣服的北方姑娘,性格开朗。生活也过得很精致,现在她唯一的遗憾,就是还是单身,大概有...
    diy1947阅读 1,410评论 0 1