La fonction d'extension en Kotlin est-elle toujours statique à l'intérieur de l'implémentation?
sobes.tech IA
Réponse de l'IA
Oui, en Kotlin, les fonctions d'extension sont implémentées comme des méthodes statiques au niveau du bytecode JVM. Bien qu'elles ressemblent syntaxiquement à des méthodes ajoutées aux classes existantes, elles ne modifient pas la classe et n'ont pas accès aux membres privés.
Cela signifie qu'à l'intérieur de l'implémentation d'une fonction d'extension, il n'y a pas de référence à l'instance de la classe (this) au sens des méthodes normales. À la place, le premier paramètre de la fonction d'extension est l'objet auquel elle s'applique.
Exemple:
fun String.lastChar(): Char = this.get(this.length - 1)
Dans le bytecode, cela apparaîtra comme une méthode statique prenant un objet String en paramètre.
Ainsi, les fonctions d'extension en Kotlin sont toujours statiques dans leur implémentation, même si elles ressemblent à des méthodes d'instance.