L'équipe Golang estime que la complexité du système de type et du temps d'exécution est trop coûteuse et n'a pas encore trouvé une bonne conception capable de compenser cette complexité.
La carte et la tranche intégrées ont en fait la saveur des génériques. De plus, interface{} peut être utilisée pour construire des conteneurs, qui peuvent obtenir l'effet des génériques. Il n’existe donc pas de support direct pour les génériques jusqu’à présent. (Apprentissage recommandé : GO )
Nous avons l'intention d'expliquer comment gérer ce problème dans Golang dans quelques exemples. Tout d’abord, examinons un problème de tri des bulles. Tri de tranches de tableaux d'entiers.package main import ( "fmt" ) func bubbleSort(array []int) { for i := 0; i < len(array); i++ { for j := 0; j < len(array)-i-1; j++ { if array[j] > array[j+1] { array[j], array[j+1] = array[j+1], array[j] } } } } func main() { a1 := []int{3, 2, 6, 10, 7, 4, 6, 5} bubbleSort(a1) fmt.Println(a1) }
Le résultat de l'exemple ci-dessus est :
[2 3 4 5 6 6 7 10]
Pour le problème de tri ci-dessus, nous pouvons analyser les étapes de tri :
Voir la longueur de la tranche pour parcourir les éléments (Len) ; Comparez deux éléments dans la tranche (Less) ; Décidez s'il faut échanger les positions des éléments (Swap) en fonction du résultat de la comparaison. À ce stade, vous avez peut-être compris que nous pouvons décomposer la fonction ci-dessus en une interface prenant en charge n'importe quel type. Tout autre type de données peut être traité à l'aide des fonctions de cette interface tant qu'elle implémente cette interface. . Trié.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!