In diesem einfachen Codebeispiel ...Muss Lokale Funktionen Kotlin Vor dem Gebrauch
fun testLocalFunctions() {
aLocalFun() //compiler error: unresolved reference at aLocalFun
fun aLocalFun() {}
aLocalFun() //no error
}
Anderswo in der Sprache erklärt werden, unter Verwendung einer Funktion vor Definition erlaubt ist. Für lokale Funktionen scheint dies jedoch nicht der Fall zu sein. Unter Bezugnahme auf Kotlin Language Specification ist der Abschnitt über lokale Funktionen immer noch mit "TODO" gekennzeichnet.
Da diese Art von Einschränkung für andere Arten von Funktionen (Top-Level- und Member-Funktionen) nicht gilt, ist das ein Fehler?
(Zugegeben, müssen lokale Variablendeklarationen vor der Verwendung auftreten, so dass die gleiche Einschränkung für lokale Funktionen ist nicht unvernünftig. Gibt es ein definitives, vorzugsweise maßgebliche Quelle Dokument, das dieses Verhalten diskutiert?)
Lokale Funktionen können lokale Variablen verwenden. Ohne diese Einschränkung würden Sie mit einem wesentlich komplexeren Ergebnis wie "eine lokale Funktion kann nur nach Deklarationen aller lokalen Variablen verwendet werden" enden. –