Локальные функции в Kotlin
Локальная функция пишется внутри тела другой функции. Снаружи этой функции ее имя не видно, зато внутри можно обращаться к переменным внешней функции.
В main объявлена printLine.
Вызвать ее можно только из main.
На экран попадет строка "hi":
fun main() {
fun printLine() {
println("hi")
}
printLine()
}
Локальная функция читает переменные main.
На экран попадет 4:
fun main() {
val width = 4
fun showWidth() {
println(width)
}
showWidth()
}
С уровня файла локальную функцию вызвать нельзя. Программа не соберется:
fun main() {
fun innerTask() {
println("done")
}
innerTask()
}
fun runApp() {
innerTask() // программа не собирается
}
Определите, что выведет программа:
fun main() {
val city = "rome"
fun showCity() {
println(city)
}
showCity()
}
Определите, соберется ли программа:
fun main() {
fun helper() {
println(1)
}
helper()
}
fun start() {
helper()
}