Middle+
Genel programlama araçları nelerdir?
sobes.tech yapay zeka
AI'dan gelen yanıt
Golang'da aşağıdaki genel programlama araçları (generikler) bulunmaktadır:
-
Parametreli türler: Yapıların, arayüzlerin ve fonksiyonların, derleme aşamasında katı şekilde belirtilmeden farklı veri türleriyle çalışmasına olanak tanır. Veri türleri, tür veya fonksiyon adından sonra köşeli parantezler içinde belirtilir.
// Parametreli tür içeren yapı örneği type Stack[T any] struct { elements []T } // Parametreli türlerle fonksiyon örneği 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 } -
Tür kısıtlamaları (Type Constraints): Kullanılabilecek türler kümesini tanımlar. Türlerin evrenselliğini sınırlandırmaya ve işlemlerin güvenliğini sağlamaya olanak tanır.
- Arayüzler: Herhangi bir arayüz kendi başına bir tür kısıtlamasıdır.
- Birleşik arayüzler: Birden fazla tür veya arayüzü
|operatörüyle birleştirmeye olanak tanır.
// Birleşik arayüz kullanılarak tür kısıtlaması örneği type Number interface { int | int8 | int16 | int32 | int64 | uint | uint8 | uint16 | uint32 | uint64 | uintptr | float32 | float64 | complex64 | complex128 } // Tür kısıtlamasını kullanan fonksiyon func Add[T Number](a, b T) T { return a + b }
Bu araçlar Go 1.18 sürümünde eklendi. Öncesinde, benzer işlevselliği sağlamak için arayüzler (interface{}) ve yansıma kullanılıyordu, bu da tür güvenliğini ve performansı azaltıyordu.