Какие пакеты / функции импортируются по умолчанию в 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.*