Sobes.tech
Junior

Čo sú rozširujúce funkcie v Kotlin?

sobes.tech AI

Odpoveď od AI

Rozširujúce funkcie sú funkcie, ktoré umožňujú pridávať novú funkčnosť existujúcim triedam bez zmeny ich zdrojového kódu a bez použitia dedičnosti.

Sú deklarované mimo triedy a sú k nej pripojené pomocou syntaxe <TriedaAkcia>.funkcia<Parametre>. Vo vnútri rozširujúcej funkcie odkazuje this na inštanciu triedy, pre ktorú je volaná.

Príklad:

// Deklarácia rozširujúcej funkcie pre triedu String
fun String.addGreeting(): String {
    return "Ahoj, $this!"
}

fun main() {
    val name = "Svet"
    // Volanie rozširujúcej funkcie
    println(name.addGreeting()) // Vypíše "Ahoj, Svet!"
}

Hlavné výhody:

  • Čistota kódu: Nie je potrebné vytvárať pomocné triedy s statickými metódami alebo dediť triedy len na pridanie funkčnosti.
  • Čitateľnosť: Volania rozširujúcich funkcií vyzerajú ako bežné metódy triedy.
  • Modularita: Funkcionalitu je možné pridať v lokálnom rozsahu.

Obmedzenia:

  • Rozširujúce funkcie nemajú prístup k súkromným alebo chráneným členom triedy.
  • V prípade konfliktu medzi metódou triedy a rozširujúcou funkciou so rovnakou signatúrou má prednosť metóda triedy.