在Kotlin中默认导入了哪些包/函数?

Mag*_*nus 11 kotlin

在Java中java.lang,默认情况下会导入包.
在科特林多个功能和类可用而不被导入,如println和kotlins Array,Int等类型.
默认情况下导入了哪些内容以及它在何处定义?

hot*_*key 13

Kotlin stdlib有kotlinroot包及其子包(请参阅完整列表中的内容).

似乎没有记录默认导入它们的任何地方,但是看看Kotlin Github源代码表明这些包是为JVM目标平台导入的:

  • java.lang.*
  • kotlin.*
  • kotlin.annotation.*
  • kotlin.jvm.*
  • kotlin.collections.*
  • kotlin.ranges.*
  • kotlin.sequences.*
  • kotlin.text.*
  • kotlin.io.*
  • kotlin.coroutines.* (将在Kotlin 1.1中添加,不在1.0.4中)

我已手动测试它们,上面的列表适用于Kotlin 1.0.4.并且默认情况下导入这些stdlib包:

  • kotlin.comparisons.*
  • kotlin.concurrent.*
  • kotlin.properties.*
  • kotlin.reflect.*
  • kotlin.reflect.jvm.*
  • kotlin.system.*

正如@Magnus所说,JS平台的默认导入是不同的.

  • 值得注意的是,JS平台也有稍微不同的进口https://github.com/JetBrains/kotlin/blob/383b7f89a6101fd9b2db417f52e3df27781718c5/js/js.frontend/src/org/jetbrains/kotlin/js/resolve/JsPlatform.kt (2认同)

Ita*_*man 6

Kotlin默认导入列表的官方文档(可能会随着语言的新版本而更改)在这里:https : //kotlinlang.org/docs/reference/packages.html#default-imports

截至2018年2月11日,它包括以下内容:

  • 科特林*
  • Kotlin注释*
  • kotlin.collections。*
  • kotlin.comparisons。*(从1.1开始)
  • kotlin.io。*
  • kotlin.ranges。*
  • 科特林序列*
  • kotlin.text。*

根据目标平台导入其他软件包:

JVM:

  • java.lang。*
  • kotlin.jvm。*

JS:

  • kotlin.js。*