• 企业400电话
  • 微网小程序
  • AI电话机器人
  • 电商代运营
  • 全 部 栏 目

    企业400电话 网络优化推广 AI电话机器人 呼叫中心 网站建设 商标✡知产 微网小程序 电商运营 彩铃•短信 增值拓展业务
    Golang二维切片初始化的实现

    引言

    之前,刷Leetcode的时候,有些题需要初始化二维数组,而一维数组的初始化,比如:

    var a = [5]int{1, 2, 3, 4, 5} // 用var
    b := [5]int{1, 2, 3, 4, 5} // 用类型推断
    var c = [...]int{1, 2, 3, 4, 5} // 不确定长度
    d := [...]int{1, 2, 3, 4, 5} 

    如果不知道数组元素的话,可以这样:

    var a [5]int
    b := [5]int{}
    c := make([]int, 5)
    

    注意:类型推断,可要初始化的,如果b := [5]int,就会报错的。而var a [5]int,则不需要初始化。

    二维数组初始化

    比如3*4:

    var a [3][4]int
    

    结果为:
    [[0 0 0 0] [0 0 0 0] [0 0 0 0]]

    类型推断:

    a := [3][4]int{}
    

    结果为:
    [[0 0 0 0] [0 0 0 0] [0 0 0 0]]

    注意:固定长度的时候,不能是变量,比如:

    m, n := 3, 4
    var a [m][n]int // 报错,必须是常量表达式
    

    如果一定要变量呢?那就得切片了了

    func main() {
     m, n := 3, 4
     a := make([][]int, m) // 二维切片,3行
     for i := range a {
      a[i] = make([]int, n) // 每一行4列
     }
     fmt.Println(a)
    }
    

    结果:
    [[0 0 0 0] [0 0 0 0] [0 0 0 0]]

    注意,有一种情况,如果没有规定长度或者初始化,访问元素会range out呢:

    var a []int // or a := []int{}
    fmt.Println(a) // []
    a[0] = 1 // 报错
    

    总结

    到此这篇关于Golang二维切片初始化的实现的文章就介绍到这了,更多相关Golang二维切片初始化内容请搜索脚本之家以前的文章或继续浏览下面的相关文章希望大家以后多多支持脚本之家!

    您可能感兴趣的文章:
    • golang切片扩容规则实现
    • golang修改结构体中的切片值方法
    • golang 切片截取参数方法详解
    • golang 字符串切片去重实例
    • golang将切片或数组根据某个字段进行分组操作
    • golang切片反序实例
    • golang 删除切片的某个元素及剔除切片内的零值方式
    上一篇:go语言实现简易比特币系统之交易签名及校验功能
    下一篇:为什么不建议在go项目中使用init()
  • 相关文章
  • 

    © 2016-2020 巨人网络通讯 版权所有

    《增值电信业务经营许可证》 苏ICP备15040257号-8

    Golang二维切片初始化的实现 Golang,二维,切片,初始化,