Junior — Middle
Ποιες μέθοδοι και εργαλεία γνωρίζετε για την υλοποίηση γενικής προγραμματισμού στα έργα σας;
sobes.tech AI
Απάντηση από AI
Στη Go, για την υλοποίηση γενικής προγραμματισμού, χρησιμοποιούνται γενετικά (generics), τα οποία εισήχθησαν από την έκδοση Go 1.18.
Βασικά εργαλεία και μέθοδοι:
- Τύποι παραμέτρων (generics) — επιτρέπουν τη γραφή συναρτήσεων, δομών και μεθόδων που λειτουργούν με διαφορετικούς τύπους δεδομένων, χωρίς διπλότυπο κώδικα.
- Διεπαφές με περιορισμούς (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
}
Πριν από την εμφάνιση των γενικών, συχνά χρησιμοποιούνταν η διεπαφή{} και η μετατροπή τύπων, αλλά αυτό είναι λιγότερο ασφαλές και λιγότερο αποδοτικό.