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
}

Генериктердин пайда болушунан мурда көбүнчө интерфейс{} жана түрлөрдү конвертациялоо колдонулчу, бирок бул азыраак коопсуз жана азыраак эффективдүү.