Kotlin-Funktionsdeklaration: Gleichheitszeichen vor geschweiften Klammern

In Kotlin können Sie mit der Syntax der Funktionsdeklaration ein Gleichheitszeichen vor die geschweiften Klammern schreiben. Betrachten Sie diese beiden Beispiele:

Ohne= Zeichen

fun foo() {
    bar()
    println("baz")
}

Der Code im Körper wird ausgeführt, indem man einfach @ aufruffoo().

Mit= Zeichen

fun foo() = {
    bar()
    println("baz")
}

Hier, wennfoo() heißt, es passiert nichts, aber um den Körper auszuführen, kann man @ schreibfoo()().

Was ist der Unterschied zwischen diesen beiden Deklarationen und Warum verhalten sie sich anders?

Diese Frage hat zwar nicht viel Bedeutung, ist aberabsichtlich vom Autor gefragt und beantwortet, da bereits einige Fragen gestellt wurden, bei denen aufgrund falscher Funktionsdefinitionen Probleme aufgetreten sind.

Antworten auf die Frage(2)

Ihre Antwort auf die Frage