Sobes.tech
Junior — Middle

Aké typy všeobecného programovania sú k dispozícii v jazyku Go?

sobes.tech AI

Odpoveď od AI

V jazyku Go je všeobecné programovanie realizované prostredníctvom generík, ktoré boli zavedené od verzie 1.18. Hlavné typy generík v Go zahŕňajú:

  • Parametrizované typy (generické typy): funkcie a typy môžu prijímať parametre typu, čo umožňuje písanie univerzálneho kódu.
  • Rozhrania s obmedzeniami (obmedzenia typu): stanovujú požiadavky na typy parametrov, napríklad, aby typ podporoval určité metódy alebo patrili do určitého súboru typov.

Príklad generickej funkcie pre slice:

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

Tu je T parameter typu obmedzený rozhraním comparable, čo umožňuje použitie operátora ==. Táto funkcia je univerzálna pre všetky porovnateľné typy.

Týmto spôsobom Go podporuje generiká prostredníctvom parametrizácie typov a obmedzení, čo zvyšuje flexibilitu a opätovné použitie kódu.