În acest articol, veți învăța să extindeți o clasă cu funcționalități noi folosind funcții de extensie.
Să presupunem că trebuie să extindeți o clasă cu funcționalități noi. În majoritatea limbajelor de programare, fie obțineți o nouă clasă, fie utilizați un fel de model de design pentru a face acest lucru.
Cu toate acestea, în Koltin, puteți utiliza și funcția de extensie pentru a extinde o clasă cu funcționalități noi. Practic, o funcție de extensie este o funcție membru a unei clase care este definită în afara clasei.
De exemplu, trebuie să utilizați o metodă pentru clasa String care returnează un șir nou cu primul și ultimul caracter eliminate; această metodă nu este deja disponibilă în String
clasă. Puteți utiliza funcția de extensie pentru a realiza această sarcină.
Exemplu: Eliminați primul și ultimul caracter al șirului
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") )
Când rulați programul, ieșirea va fi:
Primul personaj este: ello Everyon
Aici, o funcție de extensie removeFirstLastChar ()
este adăugată la String
clasă.
Numele clasei este tipul receptorului ( String
clasa din exemplul nostru). Cuvântul this
cheie din funcția de extensie se referă la obiectul receptor.
Dacă aveți nevoie să integrați Kotlin în partea de sus a proiectului Java, nu trebuie să modificați întregul cod în Koltin. Folosiți doar funcții de extensie pentru a adăuga funcționalități.
Acestea fiind spuse, este destul de ușor să abuzăm de puterea funcțiilor de extensie. Vă recomandăm să verificați aceste resurse pentru a afla când să utilizați extensiile și când să nu:
- Metodele de extensie și proprietățile extensiei sunt rele?
- Cum se abuzează de funcțiile de extensie Kotlin?