Heim >Backend-Entwicklung >Golang >Wie kann man in Go mehrdimensionale Slices in eindimensionale Slices reduzieren?

Wie kann man in Go mehrdimensionale Slices in eindimensionale Slices reduzieren?

Patricia Arquette
Patricia ArquetteOriginal
2024-12-09 07:22:08255Durchsuche

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

Mehrdimensionale in eindimensionale Slices in Go umwandeln

Bei der Programmierung ist es oft notwendig, mehrdimensionale Slices in eindimensionale Slices umzuwandeln verschiedene Gründe. Go bietet jedoch keine direkte Funktion zum Ausführen dieser Operation.

1D-Slice aus vorgegebenem 2D-Slice

Für ein bekanntes und statisches 2D-Slice kann eine einfache Schleife verwendet werden Reduzieren Sie es effizient in ein 1D-Slice:

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

Dieser Ansatz iteriert über jedes Element im 2D-Slice und akkumuliert sie im 1D-Slice arr1d, was zu Folgendem führt:

arr1d = [1, 2, 3, 4, 5, 6, 7, 8, 9]

Generische Abflachung für unbekannte Dimensionalität

Für Fälle, in denen die Dimensionen des 2D-Slices unbekannt oder dynamisch sind ist ein robusterer Ansatz erforderlich. Während Go über eine integrierte Funktion zur generischen Reduzierung verfügt, bieten mehrere Pakete diese Funktionalität:

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

Diese Pakete bieten Funktionen, die mehrdimensionale Slices beliebiger Tiefe rekursiv zu einem eindimensionalen Slice zusammenfassen.

Fazit

Obwohl Go keine bietet Da es sich um eine integrierte Methode zum Glätten mehrdimensionaler Slices handelt, gibt es effektive Lösungen mithilfe von Schleifen oder externen Paketen. Das Verständnis dieser Ansätze ermöglicht eine effiziente Konvertierung komplexer Datenstrukturen für verschiedene Programmierszenarien.

Das obige ist der detaillierte Inhalt vonWie kann man in Go mehrdimensionale Slices in eindimensionale Slices reduzieren?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Stellungnahme:
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn