fun doIt() = println("OK")
run(::doIt)
}
и в байткоде все равно вижу main$1, как если бы написал
fun main() {
val doIt = { println("OK") }
run(doIt)
}
🤷♂️ я увидел, правда лямбда была crossinline
Единственная существенная разница - для лямбды генерируется INVOKEINTERFACE, а для локальной функции - INVOKEVIRTUAL. Хотя локальные функции переработаны в JVM_IR, и там, по идее, генерируется INVOKESTATIC.
Обсуждают сегодня