Импорт со звездочкой в Kotlin
Если из одного пакета нужны многие типы или функции,
можно написать import, имя пакета и .*.
Так называемый звёздочный импорт делает
доступными все public объявления верхнего
уровня этого пакета в текущем файле.
package widgets
class Button
package widgets
class Label
package widgets
fun defaultTitle(): String = "app"
package app
import widgets.*
class Screen {
fun build() {
val btn = Button()
val lbl = Label()
println(defaultTitle())
println(btn)
println(lbl)
}
}
Звёздочный импорт не подтягивает вложенные пакеты:
import widgets.* не импортирует типы
из widgets.extra. Для вложенного пакета
нужна отдельная строка.
В больших файлах перечисление каждого имени
часто читается лучше, чем .*: сразу видно,
откуда пришёл тип. Звёздочку используют, когда
пакет маленький или в файле много обращений
к его API.
В пакете fmt объявите классы Bold
и Italic и функцию reset(),
которая выводит строку "clear". В пакете
editor объявите класс Pane,
который подключает пакет fmt директивой
import fmt.*, создаёт оба класса и
вызывает reset().
Упростите следующий код: замените три отдельных
import одним звёздочным для пакета
tools, не меняя тела класса:
package app
import tools.Hammer
import tools.Screwdriver
import tools.measure
class Job {
fun run() {
val h = Hammer()
val s = Screwdriver()
println(measure(h, s))
}
}