In Kotlin, la sintassi della dichiarazione di funzione consente di scrivere il segno di uguale prima delle parentesi graffe. Considerate questi due esempi:Dichiarazione di funzione di Kotlin: equivale a segno prima delle parentesi graffe
Senza
=
segno:fun foo() { bar() println("baz") }
Il codice all'interno del corpo viene eseguito semplicemente chiamando
foo()
.Con
=
segno:fun foo() = { bar() println("baz") }
Qui, quando
foo()
si chiama, non succede nulla, ma per ottenere il corpo eseguito si può scriverefoo()()
.
Qual è la differenza in queste due dichiarazioni e perché si comportano in modo diverso?
Questa domanda, pur non avendo molto significato, è intentionally asked and answered by the author, perché alcune domande sono già stati pubblicati in cui la gente ha dei problemi a causa delle definizioni di funzioni errate.
Kotlin o l'IDE probabilmente dovrebbero fare un'ispezione per questo. https://youtrack.jetbrains.com/issue/KT-11461 –
@hotkey oups, scusa – voddan