Пакеты
Файл исходного кода может начинаться с объявления пакета:
package org.example
fun printMessage() { /*...*/ }
class Message { /*...*/ }
// ...
Всё содержимое (такие как классы и функции) файла исходного кода содержится в объявленном пакете. Итак, в примере выше полное имя printMessage() — org.example.printMessage, а полное имя Message — org.example.Message.
Если пакет не указан, содержимое такого файла принадлежит пакету по умолчанию, у которого нет имени.
Импорты по умолчанию
Ряд пакетов импортируется в каждый Kotlin-файл по умолчанию:
- kotlin.*
- kotlin.annotation.*
- kotlin.collections.*
- kotlin.comparisons.* (с версии 1.1)
- kotlin.io.*
- kotlin.ranges.*
- kotlin.sequences.*
- kotlin.text.*
Дополнительные пакеты импортируются в зависимости от целевой платформы:
- JVM:
- java.lang.*
- kotlin.jvm.*
- JS:
Импорты
Помимо импортов по умолчанию, каждый файл может содержать собственные директивы импорта. Синтаксис импортов описан в грамматике.
Можно импортировать одно имя, например:
import org.example.Message // Message is now accessible without qualification
или всё доступное содержимое области (пакета, класса, объекта и т. д.):
import org.example.* // everything in 'org.example' becomes accessible
Если возникает конфликт имён, можно развязать его, используя ключевое слово as для локального переименования конфликтующего элемента:
import org.example.Message // Message is accessible import org.test.Message as testMessage // testMessage stands for 'org.test.Message'
Ключевое слово import не ограничивается импортом классов; его можно использовать для импорта других объявлений:
- глобальных функций и свойств;
- функций и свойств, объявленных в объявлениях объектов;
- постоянных значений перечислений.
Видимость глобальных объявлений
Если глобальное объявление помечено как private, оно является закрытым для файла, в котором оно объявлено (см. Модификаторы видимости).
© 2010–2020 JetBrains s.r.o. and Kotlin Programming Language contributors
Licensed under the Apache License, Version 2.0.
https://kotlinlang.org/docs/reference/packages.html