Ebben a cikkben megtanulod kibővíteni egy osztályt új funkciókkal a kiterjesztési függvények használatával.
Tegyük fel, hogy egy osztályt új funkciókkal kell kibővítenie. A legtöbb programozási nyelvben vagy új osztályt vezet le, vagy valamilyen tervezési mintát használ erre.
A Koltinban azonban a kiterjesztés funkciót is használhatja egy osztály új funkciókkal való kibővítésére. Alapvetően a kiterjesztési függvény egy osztály tagfüggvénye, amelyet az osztályon kívül definiálnak.
Például egy metódust kell használnia a String osztály számára, amely új karakterláncot ad vissza, az első és az utolsó karaktert eltávolítva; ez a módszer még nem érhető el az String
osztályban. A kiterjesztés funkcióval elvégezheti ezt a feladatot.
Példa: Távolítsa el a karakterlánc első és utolsó karakterét
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") )
A program futtatásakor a kimenet a következő lesz:
Az első karakter: ello Everyon
Itt ()
hozzáadódik az String
osztályhoz az removeFirstLastChar kiterjesztés funkció .
Az osztály neve a vevő típusa ( String
a példánkban osztály). A this
kiterjesztés funkcióban lévő kulcsszó a vevő objektumra utal.
Ha integrálnia kell Kotlint a Java-projekt tetejére, akkor nem kell a teljes kódot Koltin-ra módosítania. A funkciók hozzáadásához csak a kiterjesztési funkciókat használja.
Ennek ellenére meglehetősen könnyű visszaélni a kiterjesztési funkciók hatalmával. Javasoljuk, hogy ellenőrizze ezeket az erőforrásokat, hogy megtudja, mikor kell használni a bővítményeket, és mikor nem:
- Rosszak a kiterjesztési módszerek és a kiterjesztés tulajdonságai?
- Hogyan lehet visszaélni a Kotlin kiterjesztés funkcióival?