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 поддържа обобщения чрез параметризация на типове и ограничения, което увеличава гъвкавостта и повторната употреба на кода.