Maison >développement back-end >Golang >Cas pratiques de programmation générique Golang
Cas d'application pratiques de la programmation générique Golang, des exemples de code spécifiques sont nécessaires
Introduction :
Avec le développement du cloud computing, du big data et de l'intelligence artificielle, les défis auxquels sont confrontés les ingénieurs en développement logiciel augmentent de jour en jour. Les fonctionnalités génériques des langages de programmation peuvent fournir des solutions plus efficaces et plus flexibles, et Golang, en tant que langage de programmation moderne, a finalement introduit la prise en charge de la programmation générique dans la version 1.18. Dans cet article, nous partagerons quelques cas d'application pratiques de la programmation générique Golang et fournirons des exemples de code spécifiques.
Exemple de code :
package main import "fmt" type Stack[T any] []T func (s *Stack[T]) Push(value T) { *s = append(*s, value) } func (s *Stack[T]) Pop() T { top := (*s)[len(*s)-1] *s = (*s)[:len(*s)-1] return top } func main() { stack := Stack[int]{} stack.Push(1) stack.Push(2) stack.Push(3) fmt.Println(stack.Pop()) // 输出:3 fmt.Println(stack.Pop()) // 输出:2 fmt.Println(stack.Pop()) // 输出:1 }
Dans le code ci-dessus, nous définissons un conteneur Stack générique, où T représente n'importe quel type. En utilisant des fonctionnalités génériques, nous pouvons gérer différents types de données dans la même implémentation et réduire l'écriture de code en double.
Exemple de code :
package main import "fmt" type Comparable[T any] interface { LessThan(other T) bool } type Sortable[T Comparable[T]] []T func (s Sortable[T]) Sort() { for i := 0; i < len(s)-1; i++ { for j := i + 1; j < len(s); j++ { if s[j].LessThan(s[i]) { s[i], s[j] = s[j], s[i] } } } } type Person struct { Name string Age int } func (p Person) LessThan(other Person) bool { return p.Age < other.Age } func main() { people := Sortable[Person]{ {Name: "Alice", Age: 30}, {Name: "Bob", Age: 25}, {Name: "Charlie", Age: 35}, } people.Sort() fmt.Println(people) // 输出:[{Bob 25} {Alice 30} {Charlie 35}] }
Dans le code ci-dessus, nous définissons une interface Comparable, dans laquelle la méthode LessThan est utilisée pour comparer deux objets. Ensuite, nous avons défini un conteneur Sortable, où T est l'implémentation de Comparable. Grâce à une telle définition, nous pouvons transmettre différents types de données à la méthode Sortable de Sortable et implémenter un tri personnalisé.
Conclusion :
Les cas d'application pratiques de la programmation générique Golang couvrent la mise en œuvre de conteneurs et l'amélioration de la polyvalence des algorithmes. En utilisant les fonctionnalités génériques de Golang, nous pouvons écrire du code commun plus facilement, améliorant ainsi l'efficacité du développement et la réutilisabilité du code. Les exemples ci-dessus ne sont qu'une partie des applications de la programmation générique. Dans les projets réels à l'avenir, nous pourrons également bénéficier de la prise en charge des fonctionnalités de programmation générique de Golang dans davantage de problèmes.
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!