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语言中的UTF-8实现
Apr 26 Golang
Go语言中break label与goto label的区别
Apr 28 Golang
golang 接口嵌套实现复用的操作
Apr 29 Golang
解决golang结构体tag编译错误的问题
May 02 Golang
golang switch语句的灵活写法介绍
May 06 Golang
Golang标准库syscall详解(什么是系统调用)
May 25 Golang
Go语言设计模式之结构型模式
Jun 22 Golang
Golang 语言控制并发 Goroutine的方法
Jun 30 Golang
Go语言应该什么情况使用指针
Jul 25 Golang
Golang 实现WebSockets
Apr 24 Golang
GoFrame gredis缓存DoVar Conn连接对象 自动序列化GoFrame gredisDo/DoVar方法Conn连接对象自动序列化/反序列化总结
Jun 14 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 高级课程笔记 面向对象
2009/06/21 PHP
php中Session的生成机制、回收机制和存储机制探究
2014/08/19 PHP
自己的js工具_Form 封装
2009/08/21 Javascript
javascript避免数字计算精度误差的方法详解
2014/03/05 Javascript
javascript感应鼠标图片透明度显示的方法
2015/02/24 Javascript
js检测用户输入密码强度
2015/10/22 Javascript
一步步教大家编写酷炫的导航栏js+css实现
2016/03/14 Javascript
BootStrap的Datepicker控件使用心得分享
2016/05/25 Javascript
jQuery实现文字自动横移
2017/01/08 Javascript
浅谈JS函数节流防抖
2017/10/18 Javascript
浅谈Vue初学之props的驼峰命名
2018/07/19 Javascript
js嵌套的数组扁平化:将多维数组变成一维数组以及push()与concat()区别的讲解
2019/01/19 Javascript
Node.js一行代码实现静态文件服务器的方法步骤
2019/05/07 Javascript
解决微信授权成功后点击按返回键出现空白页和报错的问题
2020/06/08 Javascript
[01:08:56]DOTA2-DPC中国联赛 正赛 Magma vs LBZS BO3 第一场 2月7日
2021/03/11 DOTA
python抓取网页图片示例(python爬虫)
2014/04/27 Python
在Linux下调试Python代码的各种方法
2015/04/17 Python
python cs架构实现简单文件传输
2020/03/20 Python
python 美化输出信息的实例
2018/10/15 Python
Python函数装饰器实现方法详解
2018/12/22 Python
Python3中的bytes和str类型详解
2019/05/02 Python
python3 tkinter实现添加图片和文本
2019/11/26 Python
Django跨域资源共享问题(推荐)
2020/03/09 Python
Python爬取阿拉丁统计信息过程图解
2020/05/12 Python
PyQt5的相对布局管理的实现
2020/08/07 Python
瑜伽灵感珠宝:Satya Jewelry
2018/01/06 全球购物
解释一下ArrayList Vector和LinkedList的实现和区别
2013/04/26 面试题
怎么写好自荐信
2013/10/30 职场文书
体育专业个人求职信范文
2013/12/27 职场文书
上班玩手机检讨书
2014/02/17 职场文书
教师远程培训感言
2014/03/06 职场文书
幼儿园师德演讲稿
2014/05/06 职场文书
医院合作协议书
2014/08/19 职场文书
作风建设整改方案
2014/10/27 职场文书
2015迎新晚会活动总结
2015/07/16 职场文书
2019销售早会主持词
2019/06/27 职场文书