Maison > Article > développement back-end > Que sont les génériques à Golang ? Analyse détaillée
Les génériques sont des fonctionnalités qui permettent aux définitions de fonctions et de types de fonctionner pour plusieurs types, améliorant ainsi la réutilisabilité et la maintenabilité. Les génériques dans Go utilisent des crochets pour représenter les paramètres de type et peuvent accepter divers types comparables. Ses cas d'utilisation incluent l'élimination du code en double, l'amélioration de la lisibilité, l'amélioration de la sécurité des types, etc. Un exemple pratique d'utilisation de génériques est la structure de données Stack, qui prend en charge plusieurs types d'opérations push et pop.
Les génériques sont une fonctionnalité du langage de programmation qui permet la définition de fonctions, de méthodes et de types pouvant fonctionner pour plusieurs types. Cela améliore considérablement la réutilisabilité et la maintenabilité, éliminant le besoin de code de réification de type.
Les génériques ont été introduits dans Go 1.18, apportant des fonctionnalités puissantes au langage. Les paramètres de type génériques sont représentés par des crochets, comme indiqué ci-dessous :
func Min[T comparable](a, b T) T { if a < b { return a } return b }
Dans cet exemple, la fonction Min
peut accepter n'importe quel type comparable, tel que int, float64 ou string. Min
函数可以接受任何可比较类型,例如 int、float64 或 string。
泛型在 Go 中有许多用例,包括:
让我们考虑一个使用泛型的实际示例。假设我们有一个 Stack
Stack
, qui est une collection premier entré, premier sorti (FIFO). Nous voulons pouvoir opérer sur différents types de valeurs : 🎜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 }🎜Cet exemple crée une structure de données Stack générique qui peut stocker tout type de valeur. Nous avons créé deux piles avec int et string comme types de valeur et effectué des opérations push et pop. 🎜
Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!