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.