Fonction intégrée en ligne Kotlin

Quand utiliser en ligne

Lorsqu'un lambda est inclus dans un paramètre de méthode 

Quel est le rôle de l'inlining

Pour améliorer les performances, ne disons pas de bêtises et allons directement au code

sans doublure

import java.util.*

fun main() {

    inlineTest() { result, code ->
        println("resout:$result code:$code")
    }
}

fun inlineTest(res: (String, Int) -> Unit) {
    res("错了错了", 404)
}

Afficher le bytecode

 

 En regardant le bytecode compilé, nous pouvons savoir qu'il est empaqueté comme 

L'objet Function2 effectue ensuite une série d'opérations. Le processus est plus compliqué

plus en ligne

Re-voir le bytecode de la manière ci-dessus

Quelque chose de magique s'est produit. Le code est plus concis. L'efficacité s'est également améliorée.

PS : avec ou sans effet, le rendu est le même

resout:错了错了 code:404

faire référence à:

Fonction en ligne en ligne de Kotlin
bilibili

Acho que você gosta

Origin blog.csdn.net/mp624183768/article/details/123606958
Recomendado
Clasificación