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语言中切片与内存复制 memcpy 的实现操作
Apr 27 Golang
Go语言中break label与goto label的区别
Apr 28 Golang
go语言中GOPATH GOROOT的作用和设置方式
May 05 Golang
浅谈Golang 切片(slice)扩容机制的原理
Jun 09 Golang
Golang的继承模拟实例
Jun 30 Golang
入门学习Go的基本语法
Jul 07 Golang
go开发alertmanger实现钉钉报警
Jul 16 Golang
go goroutine 怎样进行错误处理
Jul 16 Golang
Golang中channel的原理解读(推荐)
Oct 16 Golang
Golang解析JSON对象
Apr 30 Golang
Go中使用gjson来操作JSON数据的实现
Aug 14 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接受文件并获得其后缀名的方法
2015/08/05 PHP
mysql查找删除重复数据并只保留一条实例详解
2016/09/24 PHP
PHP基于GD库的图像处理方法小结
2016/09/27 PHP
[原创]PHP实现字节数Byte转换为KB、MB、GB、TB的方法
2017/08/31 PHP
jquery 图片预加载 自动等比例缩放插件
2008/12/25 Javascript
对jQuery的事件绑定的一些思考(补充)
2013/04/20 Javascript
JavaScript 实现类的多种方法实例
2013/05/01 Javascript
JQuery异步加载无限下拉框级联功能实现示例
2014/02/19 Javascript
jquery查找父元素、子元素(个人经验总结)
2014/04/09 Javascript
nodejs教程之入门
2014/11/21 NodeJs
jQuery实现文本展开收缩特效
2015/06/03 Javascript
深入解读JavaScript中的Hoisting机制
2015/08/12 Javascript
jQuery获取单击节点对象的方法
2016/06/02 Javascript
详解微信小程序实现WebSocket心跳重连
2018/07/31 Javascript
详解nodejs 开发企业微信第三方应用入门教程
2019/03/12 NodeJs
使用Python来编写HTTP服务器的超级指南
2016/02/18 Python
asyncio 的 coroutine对象 与 Future对象使用指南
2016/09/11 Python
简述:我为什么选择Python而不是Matlab和R语言
2017/11/14 Python
对Python中创建进程的两种方式以及进程池详解
2019/01/14 Python
Django 导出项目依赖库到 requirements.txt过程解析
2019/08/23 Python
python 两个数据库postgresql对比
2019/10/21 Python
python读取raw binary图片并提取统计信息的实例
2020/01/09 Python
django 数据库 get_or_create函数返回值是tuple的问题
2020/05/15 Python
Pycharm及python安装详细教程(图解)
2020/07/31 Python
python 实现图片修复(可用于去水印)
2020/11/19 Python
python中Mako库实例用法
2020/12/31 Python
Canvas制作旋转的太极的示例
2018/03/09 HTML / CSS
HTML5 客户端数据库简易使用:IndexedDB
2019/12/19 HTML / CSS
华润集团网上药店:健一网
2016/09/19 全球购物
世界上最大的糖果店:Dylan’s Candy Bar
2017/11/07 全球购物
Larsson & Jennings官网:现代瑞士钟表匠
2018/03/20 全球购物
奥地利度假券的专家:we-are.travel
2019/04/10 全球购物
ProForm英国站点:健身房和健身器材网上商店
2019/06/05 全球购物
机关党总支领导班子整改方案
2014/09/20 职场文书
卫生院义诊活动总结
2015/05/07 职场文书
高中语文教学反思范文
2016/02/16 职场文书