Sobes.tech
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
}

Πριν από την εμφάνιση των γενικών, συχνά χρησιμοποιούνταν η διεπαφή{} και η μετατροπή τύπων, αλλά αυτό είναι λιγότερο ασφαλές και λιγότερο αποδοτικό.