Go 中多維切片轉換為一維切片
在程式設計中,經常需要將多維切片轉換為一維切片各種原因。然而,Go 並沒有提供執行此操作的直接函數。
來自預定2D 切片的1D 切片
對於已知的靜態2D 切片,一個簡單的循環可以有效地將其展平為一維切片:
var arr2d = [][]int32{{1, 2, 3}, {4, 5, 6}, {7, 8, 9}} var arr1d []int32 for _, a := range arr2d { arr1d = append(arr1d, a...) }
此方法迭代中的每個元素2D 切片並將它們累積到1D 切片arr1d中,結果是:
arr1d = [1, 2, 3, 4, 5, 6, 7, 8, 9]
未知維度的通用扁平化
對於 2D 切片的維度為的情況未知或動態,需要更穩健的方法。雖然Go 缺乏通用扁平化的內建函數,但有幾個軟體包提供了此功能:
這些套件提供了將任意深度的多維切片遞歸展平為單維切片的函數。
結論
雖然Go沒有提供用於展平多維切片的內建方法,使用循環或外部包存在有效的解決方案。了解這些方法可以為各種程式設計場景高效轉換複雜的資料結構。
以上是如何在 Go 中將多維切片展平為一維切片?的詳細內容。更多資訊請關注PHP中文網其他相關文章!