Sobes.tech
Junior — Middle

Оё метавонед мафҳуми навъҳои умумиро дар барномасозӣ шарҳ диҳед?

sobes.tech AI

Ҷавоб аз AI

Типҳои умумӣ (generics) имкон медиҳанд, ки компонентҳо, синфҳо, функсияҳо ё структураҳо бо намудҳои гуногуни маълумот кор кунанд, дар ҳоле ки бехатарии намуд ва такрории коди барномаро таъмин мекунанд.

Ба ҷои навиштани коди алоҳида барои ҳар намуд, шумо як коди умумӣ бо параметри намуд менависед. Ҳангоми истифодаи ин код, намудҳои мушаххасро, ки мехоҳед кор кунед, нишон медиҳед.

Масалан, дар Swift (iOS), шумо метавонед функсияи умумиро эълон кунед:

generic func swapValues<T>(_ a: inout T, _ b: inout T) {
    let temp = a
    a = b
    b = temp
}

var x = 5
var y = 10
swapValues(&x, &y) // x ҳоло 10, y ҳоло 5

var s1 = "салом"
var s2 = "ҷаҳон"
swapValues(&s1, &s2) // s1 ҳоло "ҷаҳон", s2 ҳоло "салом"

Ин ҷо, T параметри намуд аст, ки метавонад ҳар намуд бошад. Ин имкон медиҳад, ки функсия бо ҳар намуд маълумот кор кунад, ҳангоми нигоҳ доштани бехатарии намуд.

Намудҳои умумӣ ба таври васеъ барои эҷоди коллексияҳо, масалан, массивҳо, луғатҳо ва ғайра истифода мешаванд, ки дар онҳо намудҳои унсурҳо метавонанд фарқ кунанд.