Kotlin-Erweiterungsfunktion (mit Beispielen)

Inhaltsverzeichnis

In diesem Artikel erfahren Sie, wie Sie eine Klasse mithilfe von Erweiterungsfunktionen um neue Funktionen erweitern.

Angenommen, Sie müssen eine Klasse mit neuen Funktionen erweitern. In den meisten Programmiersprachen leiten Sie entweder eine neue Klasse ab oder verwenden dazu ein Entwurfsmuster.

In Koltin können Sie jedoch auch die Erweiterungsfunktion verwenden, um eine Klasse mit neuen Funktionen zu erweitern. Grundsätzlich ist eine Erweiterungsfunktion eine Mitgliedsfunktion einer Klasse, die außerhalb der Klasse definiert ist.

Beispielsweise müssen Sie eine Methode für die String-Klasse verwenden, die einen neuen String mit entferntem ersten und letzten Zeichen zurückgibt. Diese Methode ist in der StringKlasse noch nicht verfügbar . Sie können die Erweiterungsfunktion verwenden, um diese Aufgabe auszuführen.

Beispiel: Entfernen Sie das erste und letzte Zeichen der Zeichenfolge

 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") )

Wenn Sie das Programm ausführen, lautet die Ausgabe wie folgt:

 Erster Charakter ist: Hallo Everyon

Hier ()wird der StringKlasse eine Erweiterungsfunktion removeFirstLastChar hinzugefügt .

Der Klassenname ist der Empfängertyp ( StringKlasse in unserem Beispiel). Das thisSchlüsselwort in der Erweiterungsfunktion verweist auf das Empfängerobjekt.

Wenn Sie Kotlin über das Java-Projekt integrieren müssen, müssen Sie nicht den gesamten Code in Koltin ändern. Verwenden Sie einfach Erweiterungsfunktionen, um Funktionen hinzuzufügen.

Davon abgesehen ist es ziemlich einfach, die Leistung von Erweiterungsfunktionen zu missbrauchen. Wir empfehlen Ihnen, diese Ressourcen zu überprüfen, um zu erfahren, wann Erweiterungen verwendet werden sollen und wann nicht:

  • Sind Erweiterungsmethoden und Erweiterungseigenschaften schlecht?
  • Wie kann man Kotlin-Erweiterungsfunktionen missbrauchen?

Interessante Beiträge...