Sobes.tech
Junior — Middle

Milyen módszereket és eszközöket ismersz a generikus programozás megvalósításához a projektjeidben?

sobes.tech MI

Válasz az MI-től

A Go nyelvben a generikus programozás megvalósításához generikusokat használnak, amelyek a Go 1.18-as verziójától kezdve elérhetők.

Fő eszközök és módszerek:

  • Paraméterezett típusok (generikusok) — lehetővé teszik olyan függvények, szerkezetek és metódusok írását, amelyek különböző adattípusokkal működnek, anélkül, hogy kódot másolnánk.
  • Korlátozásokkal rendelkező interfészek (constraints) — meghatározzák a típusokra vonatkozó követelményeket, amelyeket a generikusokban lehet használni.

Példa egy generikus függvényre:

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
}

Generikusokat a generikusok megjelenése előtt gyakran az interface{} és típuskonverziók használtak, de ez kevésbé biztonságos és kevésbé hatékony.