Sobes.tech
Junior — Middle

Aké metódy a nástroje poznáš na implementáciu všeobecného programovania vo svojich projektoch?

sobes.tech AI

Odpoveď od AI

V jazyku Go sa na implementáciu generického programovania používajú generiká, ktoré boli zavedené od verzie Go 1.18.

Hlavné nástroje a metódy:

  • Parametrizované typy (generiká) — umožňujú písanie funkcií, štruktúr a metód, ktoré pracujú s rôznymi dátovými typmi, bez duplikácie kódu.
  • Rozhrania s obmedzeniami (constraints) — stanovujú požiadavky na typy, ktoré môžu byť v generikách použité.

Príklad funkcie s generikami:

package main
import "fmt"

func SumIntsOrFloats[T int | float64](slice []T) T {
    var sum T
    for _, v := range slice {
        sum += v
    }
    return sum
}

func main() {
    ints := []int{1, 2, 3}
    floats := []float64{1.1, 2.2, 3.3}
    fmt.Println(SumIntsOrFloats(ints))   // 6
    fmt.Println(SumIntsOrFloats(floats)) // 6.6
}

Pred zavedením generík sa často používala rozhranie{} a konverzia typov, ale to je menej bezpečné a menej efektívne.