源文件可以从包声明开始:
package foo.bar
fun baz() {}
class Goo {}
// ...
源文件的所有内容(如类和函数)都包含在声明的包中。 所以,在上面的例子中,baz()
的全称是foo.bar.baz
,而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.*
导入
除了默认导入,每个文件可能包含其自己的导入指令。有关导入语法的描述:(http://www.yiibai.com/kotlin/grammar.html#import)。
可以导入单个名称,例如:
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
关键字不限于导入类; 也可以使用它来导入其他声明:
与Java不同,Kotlin没有单独的“import static
”语法; 所有这些声明都使用常规import
关键字导入。
顶层声明的可见性
如果顶级声明被标记为“private
”,则对其声明的文件是私有的(请参阅“可见性修饰符”)。