Aplatir une tranche 2D en une tranche 1D dans Go
Dans Go, il n'existe actuellement aucune fonction native permettant l'aplatissement d'un Tranchez 2D en tranche 1D en une seule opération. Cependant, il existe plusieurs façons simples et explicites d'y parvenir.
Une approche consiste à utiliser une boucle pour parcourir chaque élément de la tranche 2D et l'ajouter à la tranche 1D :
var newArr []int32 for _, a := range arr { newArr = append(newArr, a...) }
Cette méthode est claire et concise, ce qui la rend facile à comprendre et à mettre en œuvre.
Une autre option consiste à tirer parti de la fonction append() intégrée pour concaténer plusieurs tranches en une seule tranche :
newArr := append([]int32{}, arr...)
Cette approche ajoute directement la tranche 2D entière à la tranche 1D, offrant une solution légèrement plus concise.
Enfin, si la tranche 2D contient des tranches de de longueur égale, il est possible d'utiliser le slicing et la fonction copy() pour créer la tranche 1D :
length := len(arr[0]) newArr := make([]int32, len(arr) * length) for i, a := range arr { copy(newArr[i * length:], a) }
Cette méthode est plus complexe mais peut être plus efficace dans certains scénarios.
Bien que Go ne dispose pas d'une fonction dédiée pour aplatir les tranches, ces solutions de contournement offrent des solutions simples et efficaces pour convertir des tranches 2D en tranches 1D.
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!