Sobes.tech
Junior — Middle

Kokie bendrojo programavimo tipai yra prieinami Go kalboje?

sobes.tech AI

Atsakymas iš AI

Go kalboje bendrasis programavimas įgyvendinamas per generikus, kurie pradėti naudoti nuo versijos 1.18. Pagrindiniai generikų tipai Go apima:

  • Parametrizuoti tipai (generiniai tipai): funkcijos ir tipai gali priimti tipų parametrus, leidžiančius rašyti universalią kodą.
  • Apribojimais turintys sąsajos (tipų apribojimai): nustato reikalavimus tipų parametrams, pavyzdžiui, kad tipas palaikytų tam tikras metodus arba priklausytų konkrečiai tipų grupei.

Pavyzdys generinės funkcijos, skirto slice:

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

Čia T yra tipų parametras, apribotas sąsaja comparable, leidžianti naudoti operatorių ==. Ši funkcija yra universali visų palyginamų tipų atžvilgiu.

Taip, Go palaiko generikus per tipų parametrizaciją ir apribojimus, kas didina lankstumą ir kodo pakartotinį naudojimą.