Sobes.tech
Junior

Ի՞նչ են գեներիկները ծրագրավորման մեջ։

sobes.tech AI

Պատասխան AI-ից

Genrics (Generics) մեթոդ է, որը թույլ է տալիս գրել ճկուն և բազմակի օգտագործման կոդ, որը աշխատում է ցանկացած տվյալների տիպի հետ և միաժամանակ պահպանում է տիպային անվտանգությունը: Նրանք թույլ են տալիս հետաձգել կոնկրետ տիպի նշումը մինչև օգտագործման պահը:

Հիմնական առավելությունները՝

  • Կոդի կրկնօրինակումից խուսափում: Կարող եք գրել ալգորիթմ/տվյալների կառուցվածք, որը աշխատում է տարբեր տիպերի հետ:
  • Տիպային անվտանգություն: Կոմպիլյատորը ստուգում է տիպերի համապատասխանությունը կոմպիլյացիայի ժամանակ, կանխելով սխալները ժամանակի ընթացքում, որոնք կապված են սխալ տիպերի հետ:
  • Արագ և հստակ կոդ: Ցույց է տալիս ծրագրավորողի մտադրությունները տվյալների տիպերի վերաբերյալ:

Օրինակ Swift-ում:

Ընդհանուր Stack կառուցվածք:

struct Stack<Element> {
    // ընդհանուր Element օգտագործվում է որպես զանգվածի տարրերի տիպ
    private var items: [Element] = []

    // ընդհանուր Element օգտագործվում է որպես պարամետրի տիպ
    mutating func push(_ item: Element) {
        items.append(item)
    }

    // ընդհանուր Element օգտագործվում է որպես վերադարձվող արժեքի տիպ
    mutating func pop() -> Element {
        return items.removeLast()
    }
}

Օգտագործում տողերով:

var stringStack = Stack<String>()
stringStack.push("hello")
stringStack.push("world")
let lastString = stringStack.pop() // lastString տիպի String

Օգտագործում թվերով:

var intStack = Stack<Int>()
intStack.push(1)
intStack.push(2)
let lastInt = intStack.pop() // lastInt տիպի Int

Բերել առանց գեներիկների, անհրաժեշտ կլիներ գրել առանձին կառուցվածքներ Stack<String>, Stack<Int> և այլն, կամ օգտագործել ավելի քիչ անվտանգ մոտեցումներ (օրինակ, Any