首頁 > 後端開發 > Golang > 如何在golang中將切片的長度定義為陣列?

如何在golang中將切片的長度定義為陣列?

WBOY
發布: 2024-02-08 21:45:24
轉載
398 人瀏覽過

如何在golang中將切片的長度定義為陣列?

在Golang中,切片與陣列是兩種不同的資料型別。切片是一個動態長度的序列,而陣列是一個固定長度的序列。如果你想將切片的長度定義為數組,可以透過建立一個固定長度的數組,然後使用切片來引用該數組來實現。具體操作是先建立一個指定長度的數組,然後使用切片來引用該數組的一部分元素,這樣就可以將切片的長度定義為數組的長度了。這種方式可以在一定程度上模擬數組的行為,同時也能夠利用切片的彈性。希望這個簡短的回答對你有幫助!

問題內容

我有一個切片數組,我想定義切片的長度,因為當我嘗試啟動程式碼時會出現恐慌:

panic: runtime error: index out of range [0] with length 0
登入後複製

程式碼:

func Transpose(m [][]int) [][]int{
    arr := make([][]int, len(m))

    for i:=0; i <len(arr); i++ {
        for j:=0; j<len(arr); j++ {
            arr[j][i] = m[i][j]
        }
    }
    
return arr
}
登入後複製

解決方法

問題是您尚未初始化每個內部切片。 arr := make([][]int, len(m)) 僅初始化 arr 切片的外循環。

func Transpose(m [][]int) [][]int {
    arr := make([][]int, len(m))

    for i := 0; i < len(m); i++ {

        arr[i] = make([]int, len(m[i]))

        for j := 0; j < len(m[i]); j++ {
            arr[i][j] = m[j][i]
        }
    }

    return arr
}
登入後複製

以上是如何在golang中將切片的長度定義為陣列?的詳細內容。更多資訊請關注PHP中文網其他相關文章!

來源:stackoverflow.com
本網站聲明
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn
熱門教學
更多>
最新下載
更多>
網站特效
網站源碼
網站素材
前端模板