Junior
Kas yra išplėtimo funkcijos Kotlin?
sobes.tech AI
Atsakymas iš AI
Išplečiančios funkcijos (extension functions) yra funkcijos, leidžiančios pridėti naują funkcionalumą esamoms klasėms, nekeičiant jų šaltinio kodo ir nenaudojant paveldėjimo.
Jos deklaruojamos už klasės ribų ir pridedamos prie jos naudojant sintaksę <KlasėsVeiksmas>.funkcija<Parametrai>. Viduje išplečiančios funkcijos this nurodo į klasės egzempliorių, kuriam ji kviečiama.
Pavyzdys:
// Išplečiančios funkcijos deklaravimas String klasei
fun String.addGreeting(): String {
return "Labas, $this!"
}
fun main() {
val name = "Pasaulis"
// Išplečiančios funkcijos kvietimas
println(name.addGreeting()) // Išves "Labas, Pasauli!"
}
Pagrindiniai privalumai:
- Kodo švarumas: Nereikia kurti pagalbinių klasių su statiniais metodais arba paveldėti klases tik funkcionalumo pridėjimui.
- Skaitomumas: Išplečiančių funkcijų kvietimai atrodo kaip įprasti klasės metodai.
- Moduliškumas: Funkcionalumas gali būti pridėtas vietiniame apimtyje.
Apribojimai:
- Išplečiančios funkcijos neturi prieigos prie privačių ar apsaugotų klasės narių.
- Jei yra konfliktas tarp klasės metodo ir išplečiančios funkcijos su ta pačia signatūra, pirmenybė teikiama klasės metodui.