Fonction d'extension Kotlin (avec exemples)

Table des matières

Dans cet article, vous apprendrez à étendre une classe avec de nouvelles fonctionnalités à l'aide des fonctions d'extension.

Supposons que vous deviez étendre une classe avec de nouvelles fonctionnalités. Dans la plupart des langages de programmation, vous dérivez une nouvelle classe ou utilisez une sorte de modèle de conception pour ce faire.

Cependant, dans Koltin, vous pouvez également utiliser la fonction d'extension pour étendre une classe avec de nouvelles fonctionnalités. Fondamentalement, une fonction d'extension est une fonction membre d'une classe définie en dehors de la classe.

Par exemple, vous devez utiliser une méthode pour la classe String qui renvoie une nouvelle chaîne avec le premier et le dernier caractère supprimés; cette méthode n'est pas déjà disponible en Stringclasse. Vous pouvez utiliser la fonction d'extension pour accomplir cette tâche.

Exemple: supprimer le premier et le dernier caractère d'une chaîne

 fun String.removeFirstLastChar(): String = this.substring(1, this.length - 1) fun main(args: Array) ( val myString= "Hello Everyone" val result = myString.removeFirstLastChar() println("First character is: $result") )

Lorsque vous exécutez le programme, la sortie sera:

 Le premier personnage est: ello Everyon

Ici, une fonction d'extension removeFirstLastChar ()est ajoutée à la Stringclasse.

Le nom de la classe est le type de récepteur ( Stringclasse dans notre exemple). Le thismot-clé à l'intérieur de la fonction d'extension fait référence à l'objet récepteur.

Si vous avez besoin d'intégrer Kotlin au-dessus du projet Java, vous n'avez pas besoin de modifier tout le code en Koltin. Utilisez simplement les fonctions d'extension pour ajouter des fonctionnalités.

Cela étant dit, il est assez facile d'abuser du pouvoir des fonctions d'extension. Nous vous recommandons de consulter ces ressources pour savoir quand utiliser les extensions et quand ne pas le faire:

  • Les méthodes d'extension et les propriétés d'extension sont-elles mauvaises?
  • Comment abuser des fonctions d'extension de Kotlin?

Articles intéressants...