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 相关文章推荐
win10下go mod配置方式
Apr 25 Golang
go语言中切片与内存复制 memcpy 的实现操作
Apr 27 Golang
解决Go gorm踩过的坑
Apr 30 Golang
golang 比较浮点数的大小方式
May 02 Golang
golang switch语句的灵活写法介绍
May 06 Golang
Golang全局变量加锁的问题解决
May 08 Golang
Go timer如何调度
Jun 09 Golang
浅谈Go语言多态的实现与interface使用
Jun 16 Golang
golang三种设计模式之简单工厂、方法工厂和抽象工厂
Apr 10 Golang
Golang流模式之grpc的四种数据流
Apr 13 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开发不能违背的安全规则 过滤用户输入
2011/05/01 PHP
php地址引用(php地址引用的效率问题)
2012/03/23 PHP
php中防止恶意刷新页面的代码小结
2012/10/31 PHP
递归删除一个节点以及该节点下的所有节点示例
2014/03/19 PHP
php页码形式分页函数支持静态化地址及ajax分页
2014/03/28 PHP
php的mail函数发送UTF-8编码中文邮件时标题乱码的解决办法
2015/10/20 PHP
CI框架的安全性分析
2016/05/18 PHP
Laravel框架生命周期与原理分析
2018/06/12 PHP
选择TreeView控件的树状数据节点的JS方法(jquery)
2010/02/06 Javascript
JavaScript判断一个URL链接是否有效的实现方法
2011/10/08 Javascript
jQuery 三击事件实现代码
2013/09/11 Javascript
JQ获取动态加载的图片大小的正确方法分享
2013/11/08 Javascript
javascript贪吃蛇完整版(源码)
2013/12/09 Javascript
javascript检测两个数组是否相似
2015/05/19 Javascript
js实现字符串转日期格式的方法
2015/05/20 Javascript
基于Bootstrap实现图片轮播效果
2016/05/22 Javascript
bootstrap基本配置_动力节点Java学院整理
2017/07/14 Javascript
支付宝小程序tabbar底部导航
2018/11/06 Javascript
python通过线程实现定时器timer的方法
2015/03/16 Python
Python3 适合初学者学习的银行账户登录系统实例
2017/08/08 Python
在python中实现强制关闭线程的示例
2019/01/22 Python
出门问问全球官方商城:Tichome音箱和TicWatch智能手表
2017/12/02 全球购物
匈牙利超级网上商店和优惠:Alza.hu
2019/12/17 全球购物
什么是.net的Remoting技术
2016/07/08 面试题
实习生的自我评价
2014/01/08 职场文书
文秘人员工作职责
2014/01/31 职场文书
生产部厂长助理职位说明书
2014/03/03 职场文书
公司开业庆典主持词
2014/03/21 职场文书
2014年乡镇团委工作总结
2014/12/18 职场文书
校友回访母校寄语
2015/02/26 职场文书
幼儿园教师自我评价
2015/03/04 职场文书
2015年妇产科工作总结
2015/05/18 职场文书
初中班干部工作总结
2015/08/10 职场文书
2019秋季运动会口号
2019/06/25 职场文书
应届生个人的求职(自荐信范文2篇)
2019/08/23 职场文书
Win11筛选键导致键盘失灵怎么解决? Win11关闭筛选键的技巧
2022/04/08 数码科技