Golang二维切片初始化的实现


Posted in Golang onApril 08, 2021

引言

之前,刷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 相关文章推荐
go mod 安装依赖 unkown revision问题的解决方案
May 06 Golang
使用golang编写一个并发工作队列
May 08 Golang
golang 实现并发求和
May 08 Golang
Golang实现AES对称加密的过程详解
May 20 Golang
Go语言设计模式之结构型模式
Jun 22 Golang
golang fmt格式“占位符”的实例用法详解
Jul 04 Golang
Go 语言中 20 个占位符的整理
Oct 16 Golang
详解Golang如何优雅的终止一个服务
Mar 21 Golang
Golang MatrixOne使用介绍和汇编语法
Apr 19 Golang
Go web入门Go pongo2模板引擎
May 20 Golang
GO中sync包自由控制并发示例详解
Aug 05 Golang
Go各时间字符串使用解析
Apr 02 #Golang
Go Gin实现文件上传下载的示例代码
Apr 02 #Golang
一文读懂go中semaphore(信号量)源码
Apr 03 #Golang
go语言map与string的相互转换的实现
Apr 07 #Golang
为什么不建议在go项目中使用init()
Apr 12 #Golang
Go语言操作数据库及其常规操作的示例代码
Apr 21 #Golang
golang判断key是否在map中的代码
Apr 24 #Golang
You might like
PHP编程过程中需要了解的this,self,parent的区别
2009/12/30 PHP
PHP的Yii框架中过滤器相关的使用总结
2016/03/29 PHP
php处理单文件、多文件上传代码分享
2016/08/24 PHP
PHP自定义函数实现格式化秒的方法
2016/09/14 PHP
PHP面向对象自动加载机制原理与用法分析
2016/10/14 PHP
PHP实现图的邻接矩阵表示及几种简单遍历算法分析
2017/11/24 PHP
[原创]静态页面也可以实现预览 列表不同的显示方式
2006/10/14 Javascript
js页面跳转常用的几种方式
2010/11/25 Javascript
基于JQuery实现异步刷新的代码(转载)
2011/03/29 Javascript
showModalDialog在谷歌浏览器下会返回Null的解决方法
2013/11/27 Javascript
JS、DOM和JQuery之间的关系示例分析
2014/04/09 Javascript
jQuery实现加入购物车飞入动画效果
2015/03/14 Javascript
jQuery基于ajax()使用serialize()提交form数据的方法
2015/12/08 Javascript
简单实现js放大镜效果
2017/07/24 Javascript
node.js 用socket实现聊天的示例代码
2017/10/17 Javascript
原生nodejs使用websocket代码分享
2018/04/07 NodeJs
原生JS实现顶部导航栏显示按钮+搜索框功能
2019/12/25 Javascript
云服务器部署Node.js项目的方法步骤(小白系列)
2020/03/23 Javascript
使用python搭建Django应用程序步骤及版本冲突问题解决
2013/11/19 Python
python读写ini配置文件方法实例分析
2015/06/30 Python
Python  pip安装lxml出错的问题解决办法
2017/02/10 Python
使用Python对MySQL数据操作
2017/04/06 Python
git使用.gitignore设置不生效或不起作用问题的解决方法
2017/06/01 Python
Python实现Selenium自动化Page模式
2019/07/14 Python
python elasticsearch环境搭建详解
2019/09/02 Python
Python脚本导出为exe程序的方法
2020/03/25 Python
Omio俄罗斯:一次搜索公共汽车、火车和飞机的机票
2018/11/17 全球购物
《盲人摸象》教学反思
2014/02/16 职场文书
文化建设工作方案
2014/05/12 职场文书
大学生万能检讨书范例
2014/10/04 职场文书
银行业务授权委托书
2014/10/10 职场文书
医德医风自我评价2015
2015/03/03 职场文书
国庆阅兵观后感
2015/06/15 职场文书
2016道德模范先进事迹材料
2016/02/26 职场文书
node.js使用express-fileupload中间件实现文件上传
2021/07/16 Javascript
Windows 11要来了?微软文档揭示Win11太阳谷 / Win10有两个不同版本
2021/11/21 数码科技