type | layout | category | title |
---|---|---|---|
doc |
reference |
Syntax |
Пакеты |
Файл с исходным кодом может начинаться с объявления пакета:
package foo.bar
fun baz() {}
class Goo {}
// ...
Всё содержимое файла с исходниками (например, классы и функции) располагается в объявленном пакете.
Таким образом, в приведённом выше примере полное имя функции baz()
So, in the example above, the full name of baz()
is foo.bar.baz
, а полное имя класса Goo
- foo.bar.Goo
.
Если файл не содержит явного объявления пакета, то его содержимое находится в безымянном "пакете по умолчанию".
Помимо импорта по умолчанию каждый файл может содержать свои собственные объявления импорта. Синтакс импорта описан а разделе Грамматика.
Мы можем импортировать одно имя, например
import foo.Bar // Bar is now accessible without qualification
или доступное содержимое пространства имён (пакет, класс, объект и т.д.):
import foo.* // everything in 'foo' becomes accessible
При совпадении имён мы можем разрешить коллизию используя ключевое слово as для локального переименования совпадающей сущности:
import foo.Bar // Bar доступен
import bar.Bar as bBar // bBar заменяет имя 'bar.Bar'
Ключевое слово import
можно использовать не только с классами, но и с другими объявлениями:
- функции и свойства верхнего уровня;
- функции и свойства объявленные в объявлениях объектов;
- перечислениях
В отличие от Java, Kotlin не предоставляет отдельного объявления статического импорта "import static"; все подобные объявления испортируются ключевым словом import
.
Если объявление верхнего уровня отмечено как private, то оно является private в файле, в котором оно объявлено (см. Модификаторы области видимости).