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
}

Бул жерде, Tcomparable интерфейси менен чектелген түр параметри, ал == операторун колдонууга мүмкүндүк берет. Бул функция бардык салыштырмалуу түрлөр үчүн универсалдуу.

Ошентип, Go тийиштүү түрлөрдүн параметрлештирүүсү жана чектөөлөр аркылуу генератик түрлөрдү колдойт, бул коддун ийкемдүүлүгүн жана кайра колдонулушун жогорулатат.