Sobes.tech
Junior — Middle

Какви видове обобщено програмиране са налични в езика Go?

sobes.tech AI

Отговор от AI

В езика Go обобщеното програмиране се реализира чрез дженерики, които са въведени от версия 1.18. Основните типове дженерики в Go включват:

  • Параметризирани типове (генерични типове): функции и типове могат да приемат параметри на типове, което позволява писането на универсален код.
  • Интерфейси с ограничения (ограничения на типа): задават изисквания към типовете параметри, например, да поддържат определени методи или да принадлежат към набор от конкретни типове.

Пример за генерична функция за слайс:

func IndexOf[T comparable](slice []T, val T) int {
    for i, v := range slice {
        if v == val {
            return i
        }
    }
    return -1
}

Тук T е параметър на тип, ограничен с интерфейса comparable, което позволява използването на оператора ==. Тази функция е универсална за всякакви сравними типове.

По този начин, Go поддържа обобщения чрез параметризация на типове и ограничения, което увеличава гъвкавостта и повторната употреба на кода.