Maison > Article > développement back-end > Une plongée approfondie dans le concept de génériques à Golang
Exploration approfondie du concept de génériques dans Golang
Préface
Les génériques introduits dans Golang 1.18 sont une fonctionnalité de langage puissante qui vous permet d'utiliser des variables de type dans votre code, améliorant ainsi la qualité de votre code . Réutilisabilité et maintenabilité. Dans cet article, nous approfondirons le concept de génériques dans Golang et démontrerons leur utilisation à travers un cas pratique.
Syntaxe
Lors de la définition d'un type générique, vous pouvez utiliser des crochets et spécifier des variables de type à l'intérieur. Par exemple :
type Queue[T any] struct { head, tail int items []T }
<t any></t>
déclare la variable de type T
, en acceptant n'importe quel type. <t any></t>
声明了类型变量 T
,接受任何类型。
泛型函数
您还可以定义泛型函数,它可以操作各种类型的值。以下是一个比较两个值的泛型函数的示例:
func Max[T Ordered](x, y T) T { if x > y { return x } return y }
操作通用的类型
泛型类型可以使代码更具通用性,允许您在不同类型的值上执行操作。例如,Queue
Fonctions génériques
Vous pouvez également définir des fonctions génériques, qui peuvent opérer sur différents types de valeurs. Voici un exemple de fonction générique qui compare deux valeurs :func main() { queue := Queue[int]{} queue.Enqueue(10) queue.Enqueue(20) fmt.Println(queue) }
Queue
peut stocker des éléments de n'importe quel type : type Node[K comparable, V any] struct { key K value V left *Node[K, V] right *Node[K, V] }
Le code générique peut être facilement Réutilisez-le sur différents types de valeurs, réduisant ainsi le besoin de dupliquer le code.
Lisibilité et maintenabilité :Le code générique est plus facile à lire et à maintenir car vous n'avez plus besoin d'écrire des fonctions distinctes pour des types spécifiques.
Évitez les conversions de type : Le code générique élimine le besoin de conversions de type, améliorant ainsi les performances et la sécurité de votre code.
🎜Cas pratique🎜🎜🎜Démontrons l'utilisation des génériques à travers un cas pratique. Nous allons créer une structure de données d'arbre binaire générique pouvant stocker tout type de paires clé-valeur : 🎜func main() { tree := NewTree[int, string]() tree.Insert(10, "John") tree.Insert(5, "Alice") fmt.Println(tree) }rrreee🎜🎜Conclusion🎜🎜🎜Les génériques sont un ajout puissant au langage Golang, vous permettant d'écrire plus général et plus configurable. Réutilisable, plus code lisible et plus facile à maintenir. En comprenant le concept des génériques et en les appliquant à des scénarios du monde réel, vous pouvez améliorer considérablement l'efficacité et l'évolutivité de votre projet Golang. 🎜
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!