Einen 2D-Slice in einen 1D-Slice in Go verflachen
In Go gibt es derzeit keine native Funktion, die das Verflachen eines ermöglicht 2D-Schnitt in einen 1D-Schnitt in einem einzigen Vorgang. Es gibt jedoch mehrere einfache und explizite Möglichkeiten, dies zu erreichen.
Ein Ansatz besteht darin, eine Schleife zu verwenden, um jedes Element des 2D-Slices zu durchlaufen und es an das 1D-Slice anzuhängen:
var newArr []int32 for _, a := range arr { newArr = append(newArr, a...) }
Diese Methode ist klar und prägnant, sodass sie leicht zu verstehen und zu implementieren ist.
Eine weitere Option besteht darin, die integrierte Funktion append() zu nutzen, um mehrere zu verketten Slices in ein einzelnes Slice:
newArr := append([]int32{}, arr...)
Dieser Ansatz hängt das gesamte 2D-Slice direkt an das 1D-Slice an und bietet so eine etwas prägnantere Lösung.
Schließlich, wenn das 2D-Slice Slices von enthält Bei gleicher Länge ist es möglich, Slicing und die Funktion copy() zu verwenden, um das 1D-Slice zu erstellen:
length := len(arr[0]) newArr := make([]int32, len(arr) * length) for i, a := range arr { copy(newArr[i * length:], a) }
Diese Methode ist komplexer, kann aber in bestimmten Szenarien effizienter sein.
Während Go über keine spezielle Funktion zum Reduzieren von Slices verfügt, bieten diese Workarounds einfache und effiziente Lösungen zum Konvertieren von 2D-Slices in 1D-Slices.
Das obige ist der detaillierte Inhalt vonWie glätte ich in Go ein 2D-Slice in ein 1D-Slice?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!