Sobes.tech
Junior

Wat zijn generics in programmeren?

sobes.tech AI

Antwoord van AI

Generics (Generics) zijn een manier om flexibele, herbruikbare code te schrijven die werkt met elk gegevenstype, terwijl de typeveiligheid behouden blijft. Ze stellen je in staat om het specificeren van een concreet type uit te stellen tot het moment van gebruik.

Belangrijkste voordelen:

  • Vermijden van code duplicatie: Je kunt één algoritme/gegevensstructuur schrijven die met verschillende types werkt.
  • Typeveiligheid: De compiler controleert de compatibiliteit van types tijdens de compilatie, waardoor runtime-fouten door verkeerde types worden voorkomen.
  • Expressievere code: Het toont duidelijk de intenties van de ontwikkelaar met betrekking tot de datatypes.

Voorbeeld van gebruik in Swift:

Generieke structuur Stack:

struct Stack<Element> {
    // generiek Element wordt gebruikt als type van de array-elementen
    private var items: [Element] = []

    // generiek Element wordt gebruikt als type van de parameter
    mutating func push(_ item: Element) {
        items.append(item)
    }

    // generiek Element wordt gebruikt als returntype
    mutating func pop() -> Element {
        return items.removeLast()
    }
}

Gebruik met strings:

var stringStack = Stack<String>()
stringStack.push("hello")
stringStack.push("world")
let lastString = stringStack.pop() // lastString heeft type String

Gebruik met nummers:

var intStack = Stack<Int>()
intStack.push(1)
intStack.push(2)
let lastInt = intStack.pop() // lastInt heeft type Int

Zonder generics zou je aparte structuren moeten schrijven voor Stack<String>, Stack<Int>, enz., of minder veilige benaderingen gebruiken (bijvoorbeeld Any).