如何在golang中定义数组中切片长度?

t30tvxxf  于 2023-06-27  发布在  Go
关注(0)|答案(1)|浏览(84)

我有一个切片数组,我想定义切片的长度,因为当我试图启动一个代码时,会出现panic:

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
}
km0tfn4u

km0tfn4u1#

问题是你还没有初始化每个内部切片。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
}

相关问题