Maison > développement back-end > Golang > Comment aplatir des tranches multidimensionnelles en tranches unidimensionnelles en Go ?

Comment aplatir des tranches multidimensionnelles en tranches unidimensionnelles en Go ?

Patricia Arquette
Libérer: 2024-12-09 07:22:08
original
259 Les gens l'ont consulté

How to Flatten Multidimensional Slices into One-Dimensional Slices in Go?

Conversion de tranches multidimensionnelles en tranches unidimensionnelles dans Go

En programmation, il est souvent nécessaire de convertir des tranches multidimensionnelles en tranches unidimensionnelles pour diverses raisons. Cependant, Go ne fournit pas de fonction directe pour effectuer cette opération.

Tranche 1D à partir d'une tranche 2D prédéfinie

Pour une tranche 2D connue et statique, une simple boucle peut aplatissez-le efficacement en une tranche 1D :

var arr2d = [][]int32{{1, 2, 3}, {4, 5, 6}, {7, 8, 9}}
var arr1d []int32
for _, a := range arr2d {
    arr1d = append(arr1d, a...)
}
Copier après la connexion

Cette approche parcourt chaque élément de la tranche 2D et les accumule dans la tranche 1D arr1d, ce qui donne :

arr1d = [1, 2, 3, 4, 5, 6, 7, 8, 9]
Copier après la connexion

Aplatissement générique pour dimensionnalité inconnue

Pour les cas où les dimensions de la tranche 2D sont inconnues ou dynamiques, un une approche plus robuste est nécessaire. Bien que Go ne dispose pas d'une fonction intégrée pour l'aplatissement générique, plusieurs packages fournissent cette fonctionnalité :

  • arrayutils : https://pkg.go.dev/github.com/icza /arrayutils#FlattenSlice
  • plat : https://pkg.go.dev/github.com/srika403/flat#ExtSliceChain

Ces packages offrent des fonctions qui aplatissent de manière récursive des tranches multidimensionnelles de n'importe quelle profondeur en une tranche unidimensionnelle.

Conclusion

Bien que Go ne fournisse pas de méthode intégrée pour Pour aplatir des tranches multidimensionnelles, des solutions efficaces existent en utilisant des boucles ou des packages externes. Comprendre ces approches permet une conversion efficace de structures de données complexes pour divers scénarios de programmation.

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!

source:php.cn
Déclaration de ce site Web
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn
Derniers articles par auteur
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal