kotlin学习笔记(五)


一个源文件以包声明开始:

packagefoo.barfunbza() {}classGoo{}//...

源文件的所有内容(比如类和函数)都被包声明包括。因此在上面的例子中,bza()的全名应该是foo.bar.bza,Goo的全名是foo.bar.Goo。

如果没有指定包名,那这个文件的内容就从属于没有名字的 "default" 包。

默认导入

许多包被默认导入到每个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.*

Imports

除了模块中默认导入的包,每个文件都可以有它自己的导入指令。导入语法的声明在grammar中描述。

我们可以导入一个单独的名字,比如下面这样:

importfoo.Bar//Bar 现在可以不用条件就可以使用

或者范围内的所有可用的内容 (包,类,对象,等等):

importfoo.*//foo 中的所有都可以使用

如果命名有冲突,我们可以使用as关键字局部重命名解决冲突

importfoo.Bar//Bar 可以使用importbar.BarasbBar//bBar 代表 'bar.Bar'

import关键字不局限于导入类;您也可以使用它来导入其他声明:

-- 顶级函数与属性

-- 在对象声明中声明的函数和属性

--枚举常量

可见性和包嵌套

如果最顶的声明标注为 private , 那么它是自己对应包私有 (参看Visibility Modifiers)。如果包内有私有的属性或方法,那它对所有的子包是可见的。

注意包外的的成员是默认不导入的,比如在导入foo.bar后我们不能获得foo的成员

你可能感兴趣的:(kotlin学习笔记(五))