Ümumi proqramlaşdırma vasitələri hansılardır?
sobes.tech Süni İntellekt
AI-dan cavab
Golang-da aşağıdakı ümumi proqramlaşdırma vasitələri (generiklər) mövcuddur:
-
Parametrli tiplər: Strukturlar, interfeys və funksiyalar yaratmağa imkan verir ki, bunlar müxtəlif məlumat tipləri ilə işləyə bilsinlər, onları sərt şəkildə təyin etmədən. Məlumat tipləri tip və ya funksiyanın adından sonra kvadrat mötərizələrdə göstərilir.
// Parametrli tiplə struktur nümunəsi type Stack[T any] struct { elements []T } // Parametrli tiplərlə funksiya nümunəsi func Map[T, U any](collection []T, f func(T) U) []U { result := make([]U, len(collection)) for i, item := range collection { result[i] = f(item) } return result } -
Tip məhdudiyyətləri (Type Constraints): Parametr kimi istifadə oluna biləcək tiplər toplusunu müəyyən edir. Tiplərin ümumiləşdirilməsini məhdudlaşdırmağa və əməliyyatların təhlükəsizliyini təmin etməyə imkan verir.
- Interfeyslar: Hər hansı bir interfeys öz-özlüyündə tip məhdudiyyətidir.
- Birgə interfeyslar: Bir neçə tip və ya interfeysi
|operatoru ilə birləşdirməyə imkan verir.
// Birgə interfeys istifadə edilərək tip məhdudiyyətinin nümunəsi type Number interface { int | int8 | int16 | int32 | int64 | uint | uint8 | uint16 | uint32 | uint64 | uintptr | float32 | float64 | complex64 | complex128 } // Tip məhdudiyyətindən istifadə edən funksiya func Add[T Number](a, b T) T { return a + b }
Bu vasitələr Go 1.18-də əlavə olunmuşdur. Onlardan əvvəl, genetik funksionallıq üçün, interfeys (interface{}) və refleksiya istifadə olunurdu, bu da tip təhlükəsizliyini və performansı azaldırdı.