包
一个源文件可以以下面的包声明开头:
package
foo
.bar
fun
baz
() {}
class
Goo
{}
// ...
源文件的所有内容(例如包和函数)都被声明的包所包含。因此,对于上面的例子,baz
()的全名称为foo.bar.baz,Goo的全名称为foo.bar.Goo。
如果一个包没有被指明,则文件属于默认包。
默认引入
一些包默认被引入每一个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:
引入
除了默认的引入,每个文件还包含它自己的引入。引入的使用在[语法]这部分有描述。
我们可以引入一个简单的 名字,例如:
import
foo
.Bar
// 可以直接访问Bar了
或者让这个作用域(包,类,对象等)的所有内容可访问:
import
foo
.*
// foo内的所有内容可以访问
如果存在命名冲突,我们可以通过使用as重命名冲突的实体来解决冲突:
import
foo
.Bar
// Bar 可访问
import
bar
.Bar
as
bBar
// bBar 代表 'bar.Bar'
import关键字不仅仅被限制在引入类上面,你也可以用它来引入其他声明:
- 高级函数和属性
- 声明在单例类的方法中的方法和属性
- 枚举常量
不像java这货,
Kotlin
没有一个单独的“import static”这种语法;所有的声明都是用import这个常规关键字引入。
高级别函数的可见性
如果一个高级的函数(不在类内层这种,直接在包下面)被标记为私有的,它声明时候所在的文件是私有的,仅仅在它声明的文件中可见。
,