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 相关文章推荐
golang判断key是否在map中的代码
Apr 24 Golang
用golang如何替换某个文件中的字符串
Apr 25 Golang
golang中切片copy复制和等号复制的区别介绍
Apr 27 Golang
golang协程池模拟实现群发邮件功能
May 02 Golang
Golang二维数组的使用方式
May 28 Golang
Golang中channel的原理解读(推荐)
Oct 16 Golang
浅谈GO中的Channel以及死锁的造成
Mar 18 Golang
Golang使用Panic与Recover进行错误捕获
Mar 22 Golang
Golang 1.18 多模块Multi-Module工作区模式的新特性
Apr 11 Golang
Go语言 详解net的tcp服务
Apr 14 Golang
golang的文件创建及读写操作
Apr 14 Golang
Golang 遍历二叉树
Apr 19 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
详解HTTP Cookie状态管理机制
2016/01/14 PHP
php实现有序数组旋转后寻找最小值方法
2018/09/27 PHP
双击滚屏-常用推荐
2006/11/29 Javascript
有关于eclipse配置spket需要注意的一些地方
2013/04/07 Javascript
Javascript中引用示例介绍
2014/02/21 Javascript
jQuery预加载图片常用方法
2015/06/15 Javascript
jquery实现的仿天猫侧导航tab切换效果
2015/08/24 Javascript
js带缩略图的图片轮播效果代码分享
2015/09/14 Javascript
分享经典的JavaScript开发技巧
2015/11/21 Javascript
javascript高级选择器querySelector和querySelectorAll全面解析
2016/04/07 Javascript
jquery遍历table的tr获取td的值实现方法
2016/05/19 Javascript
微信小程序 定义全局数据、函数复用、模版等详细介绍
2016/10/27 Javascript
DataTables+BootStrap组合使用Ajax来获取数据并且动态加载dom的方法(排序,过滤,分页等)
2016/11/09 Javascript
Jquery根据浏览器窗口改变调整大小的方法
2017/02/07 Javascript
JavaScript轻松创建级联函数的方法示例
2017/02/10 Javascript
JS 学习总结之正则表达式的懒惰性和贪婪性
2017/07/03 Javascript
js中的闭包学习心得
2018/02/06 Javascript
vue组件中watch props根据v-if动态判断并挂载DOM的问题
2019/05/12 Javascript
JavaScript实现电灯开关小案例
2020/03/30 Javascript
解决vue的touchStart事件及click事件冲突问题
2020/07/21 Javascript
JavaScript判断数据类型有几种方法及区别介绍
2020/09/02 Javascript
nodeJs项目在阿里云的简单部署
2020/11/27 NodeJs
[00:32]2018DOTA2亚洲邀请赛VG出场
2018/04/03 DOTA
解析Python中while true的使用
2015/10/13 Python
用Python下载一个网页保存为本地的HTML文件实例
2018/05/21 Python
Python循环实现n的全排列功能
2019/09/16 Python
如何更换python默认编辑器的背景色
2020/08/10 Python
详解java调用python的几种用法(看这篇就够了)
2020/12/10 Python
html5使用canvas实现跟随光标跳动的火焰效果
2014/01/07 HTML / CSS
美国女士泳装店:Swimsuits For All
2017/03/02 全球购物
viagogo意大利票务平台:演唱会、体育比赛、戏剧门票
2018/01/26 全球购物
Ellesse英国官网:意大利高级运动品牌
2019/07/23 全球购物
《争吵》教学反思
2014/02/15 职场文书
银行党员批评与自我批评
2014/10/15 职场文书
安全第一课观后感
2015/06/18 职场文书
Nebula Graph解决风控业务实践
2022/03/31 MySQL