Junior — Middle
Կտա՞վ հնարավոր է Kotlin լեզվում դասի սահմանման դուրս հատկություններ հայտարարել։
sobes.tech AI
Պատասխան AI-ից
Kotlin-ում հատկությունները սովորաբար հայտարարում են դասի սահմանման մեջ: Սակայն, եթե անհրաժեշտ է ավելացնել հատկություն դասից դուրս, կարող եք օգտագործել ընդլայնումներ (extension properties):
Ընդլայնումները թույլ են տալիս ավելացնել նոր հատկություններ կամ ֆունկցիաներ գոյություն ունեցող դասերին՝ առանց նրանց ծագող կոդը փոխելու:
Դասից դուրս ընդլայնման հատկության օրինակ:
class User(val name: String)
// Դասից դուրս ընդլայնման հատկություն
val User.firstChar: Char
get() = this.name.first()
fun main() {
val user = User("Anna")
println(user.firstChar) // Տպում է 'A'
}
Маһим է: ընդլայնման հատկությունները չեն կարող ունենալ վիճակ (backing field), այդ պատճառով պետք է հաշվարկվող լինեն (միայն getter կամ getter և setter, բայց առանց դաշտի):
Այս կերպ, հատկությունները կարող են հայտարարվել դասի սահմանումից դուրս՝ ընդլայնումների միջոցով, սակայն որոշ սահմանափակումներով։