Junior
Функсияҳои васеъкунӣ дар Kotlin чистанд?
sobes.tech AI
Ҷавоб аз AI
Функсияҳои васеъкунӣ функсияҳое мебошанд, ки имкон медиҳанд, ки функсионалияти нав ба синфҳои мавҷуда илова карда шавад, бе тағир додани коди манбаъ ва бе истифодаи мерос.
Онҳо дар беруни синф эълон мешаванд ва бо истифода аз синтаксис <КлассАмали>.функсия<Параметрҳо> ба он пайваст мешаванд. Дар дохили функсияи васеъкунӣ, this ба намунаи синфи, ки барои он даъват мешавад, ишора мекунад.
Масал:
// Эълони функсияи васеъкунӣ барои синфи String
fun String.addGreeting(): String {
return "Салом, $this!"
}
fun main() {
val name = "Дунё"
// Даъвати функсияи васеъкунӣ
println(name.addGreeting()) // Натиҷа: "Салом, Дунё!"
}
Афзалиятҳои асосӣ:
- Тозаии коди: Зарур нест, ки синфҳои кӯмакӣ бо методҳои статикӣ эҷод кунед ё танҳо барои илова кардани функсионалият синфҳоро мерос гиред.
- Дидан: Зангҳои функсияҳои васеъкунӣ ба монанди методҳои одии синф менамоянд.
- Модулӣ: Функсионалият метавонад дар доираи маҳаллӣ илова карда шавад.
Маҳдудиятҳо:
- Функсияҳои васеъкунӣ ба аъзои хусусӣ ё муҳофизатшудаи синф дастрасӣ надоранд.
- Дар ҳолати ихтилоф байни усули синф ва функсияи васеъкунӣ бо ҳамон имзо, усули синф афзалият дорад.