Generika sind Funktionen, die es ermöglichen, dass Funktions- und Typdefinitionen für mehrere Typen funktionieren, wodurch die Wiederverwendbarkeit und Wartbarkeit verbessert wird. Generics in Go verwenden eckige Klammern zur Darstellung von Typparametern und können verschiedene vergleichbare Typen akzeptieren. Zu seinen Anwendungsfällen gehören die Eliminierung von doppeltem Code, die Verbesserung der Lesbarkeit, die Verbesserung der Typsicherheit und mehr. Ein praktisches Beispiel für die Verwendung von Generika ist die Stack-Datenstruktur, die mehrere Arten von Push- und Pop-Operationen unterstützt.
Generika sind eine Programmiersprachenfunktion, die die Definition von Funktionen, Methoden und Typen ermöglicht, die für mehrere Typen funktionieren können. Dies verbessert die Wiederverwendbarkeit und Wartbarkeit erheblich und macht die Notwendigkeit von Typ-Reifizierungscode überflüssig.
Generika wurden in Go 1.18 eingeführt und bringen leistungsstarke Funktionen in die Sprache. Generische Typparameter werden durch eckige Klammern dargestellt, wie unten gezeigt:
func Min[T comparable](a, b T) T { if a < b { return a } return b }
In diesem Beispiel kann die Funktion Min
jeden vergleichbaren Typ akzeptieren, z. B. int, float64 oder string. Min
函数可以接受任何可比较类型,例如 int、float64 或 string。
泛型在 Go 中有许多用例,包括:
让我们考虑一个使用泛型的实际示例。假设我们有一个 Stack
Stack
-Datenstruktur, bei der es sich um eine First-In-First-Out-Sammlung (FIFO) handelt. Wir möchten in der Lage sein, mit verschiedenen Arten von Werten zu arbeiten: 🎜package main type Stack[T any] struct { elements []T } func (s *Stack[T]) Push(item T) { s.elements = append(s.elements, item) } func (s *Stack[T]) Pop() T { item := s.elements[len(s.elements)-1] s.elements = s.elements[:len(s.elements)-1] return item } func main() { intStack := Stack[int]{} intStack.Push(1) intStack.Push(2) fmt.Println(intStack.Pop()) // 2 fmt.Println(intStack.Pop()) // 1 stringStack := Stack[string]{} stringStack.Push("Hello") stringStack.Push("World") fmt.Println(stringStack.Pop()) // World fmt.Println(stringStack.Pop()) // Hello }
Das obige ist der detaillierte Inhalt vonWas sind Generika in Golang? Detaillierte Analyse. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!