Sobes.tech
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, բայց առանց դաշտի):

Այս կերպ, հատկությունները կարող են հայտարարվել դասի սահմանումից դուրս՝ ընդլայնումների միջոցով, սակայն որոշ սահմանափակումներով։