go / expert
Snippet
Generische Type-Set-Constraints
Type-Sets in Interfaces ermöglichen es Generics, Typen auf eine bestimmte Vereinigung zu beschränken. Der Tilde-Operator (~) schließt Typen ein, die denselben zugrunde liegenden primitiven Typ teilen.
snippet.go
1
2
3
4
5
6
7
8
9
10
11
type Number interface {~int | ~int64 | ~float64}func Sum[T Number](vals []T) T {var total Tfor _, v := range vals {total += v}return total}
Erklärung
1
~int | ~int64 | ~float64
Definiert eine Vereinigung erlaubter Typen, einschließlich benutzerdefinierter Typen basierend auf diesen Primitiven.
2
func Sum[T Number]
Eine generische Funktionssignatur, die durch das Number-Interface eingeschränkt ist.