Какие пакеты / функции импортируются по умолчанию в Kotlin?

в Java java.lang пакет импортируется по умолчанию.
В kotlin ряд функций и классов доступны без импорта, например println и kotlins Array, Int, типы etc.
Что еще импортируется по умолчанию и где это определено?

2 ответов


Котлин stdlib имеет 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.*

As @Magnus отмечено, импорт по умолчанию для платформы JS разные.


официальная документация для списка импорта по умолчанию Kotlin (который, вероятно, будет изменен с новыми версиями языка) находится здесь: https://kotlinlang.org/docs/reference/packages.html#default-imports

по состоянию на 2018-02-11 он включает в себя следующее:

  • Котлин.*
  • Котлин.аннотация.*
  • Котлин.коллекции.*
  • Котлин.сравнения.* (начиная с 1.1)
  • Котлин.io.*
  • Котлин.диапазоны.*
  • Котлин.последовательности.*
  • Котлин.текст.*

дополнительные пакеты импортируются в зависимости от целевой платформы:

JVM:

  • java.ленг.*
  • Котлин.виртуальная машина Java.*

JS:

  • Котлин.js.*