Junior — Middle
Кои методи и инструменти познавате за реализиране на обобщено програмиране във вашите проекти?
sobes.tech AI
Отговор от AI
В Go за реализиране на обобщено програмиране се използват дженерики, които са въведени от версия Go 1.18.
Основни инструменти и методи:
- Параметризирани типове (дженерики) — позволяват писане на функции, структури и методи, които работят с различни типове данни, без да се дублира код.
- Интерфейси с ограничения (constraints) — задават изисквания към типовете, които могат да се използват в дженериките.
Пример за функция с дженерики:
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
}
Преди въвеждането на дженериките често се използваше интерфейс{} и преобразуване на типове, но това е по-малко безопасно и по-малко ефективно.