Sobes.tech
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
}

Преди въвеждането на дженериките често се използваше интерфейс{} и преобразуване на типове, но това е по-малко безопасно и по-малко ефективно.