Sobes.tech
Junior — Middle

Welke soorten generieke programmering zijn beschikbaar in de Go-taal?

sobes.tech AI

Antwoord van AI

In de programmeertaal Go wordt generieke programmering geïmplementeerd via generics, die vanaf versie 1.18 zijn geïntroduceerd. De belangrijkste typen generics in Go omvatten:

  • Getypeerde typen (generieke types): functies en types kunnen typeparameters accepteren, waardoor het schrijven van universele code mogelijk is.
  • Interfaces met beperkingen (trefbeperkingen): stellen eisen aan de typeparameters, bijvoorbeeld dat het type bepaalde methoden ondersteunt of tot een specifieke set types behoort.

Voorbeeld van een generieke functie voor een slice:

func IndexOf[T comparable](slice []T, val T) int {
    for i, v := range slice {
        if v == val {
            return i
        }
    }
    return -1
}

Hier is T een typeparameter beperkt door de interface comparable, wat het gebruik van de operator == mogelijk maakt. Deze functie is universeel voor alle vergelijkbare types.

Op deze manier ondersteunt Go generics via typeparametrisatie en beperkingen, wat de flexibiliteit en hergebruik van code verhoogt.