首页 > 后端开发 > Golang > 正文

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

WBOY
发布: 2024-02-08 21:45:24
转载
346 人浏览过

如何在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
热门教程
更多>
最新下载
更多>
网站特效
网站源码
网站素材
前端模板
关于我们 免责声明 Sitemap
PHP中文网:公益在线PHP培训,帮助PHP学习者快速成长!