在Go 中將2D 切片展平為1D 切片
在Go 中,目前沒有原生函數允許將2D 切片展平為1D 切片。透過一次操作即可將 2D 切片轉換為 1D 切片。但是,有幾種簡單且明確的方法可以實現此目的。
一種方法是使用循環迭代 2D 切片的每個元素並將其附加到 1D 切片:
var newArr []int32 for _, a := range arr { newArr = append(newArr, a...) }
這個方法清晰簡潔,易於理解和實現。
另一種選擇是利用內建的append()函數來連接將多個切片合併為一個切片:
newArr := append([]int32{}, arr...)
這種方法直接將整個2D 切片附加到1D 切片上,提供了稍微更簡潔的解決方案。
最後,如果2D 切片包含切片長度相等,可以使用切片和copy() 函數來建立一維slice:
length := len(arr[0]) newArr := make([]int32, len(arr) * length) for i, a := range arr { copy(newArr[i * length:], a) }
此方法更複雜,但在某些情況下可能更有效。
雖然 Go 缺乏專門的壓平切片的函數,但這些解決方法為轉換提供了簡單高效的解決方案2D 切片為 1D 切片。
以上是如何在 Go 中將 2D 切片展平為 1D 切片?的詳細內容。更多資訊請關注PHP中文網其他相關文章!