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缓冲channel和非缓冲channel的区别说明
Apr 25 Golang
解决Golang中ResponseWriter的一个坑
Apr 27 Golang
解决go在函数退出后子协程的退出问题
Apr 30 Golang
解决goland 导入项目后import里的包报红问题
May 06 Golang
Go语言基础map用法及示例详解
Nov 17 Golang
Golang 链表的学习和使用
Apr 19 Golang
Golang 切片(Slice)实现增删改查
Apr 22 Golang
Golang ort 中的sortInts 方法
Apr 24 Golang
Golang入门之计时器
May 04 Golang
Go web入门Go pongo2模板引擎
May 20 Golang
Go语言测试库testify使用学习
Jul 23 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
丧钟首部独立剧集《丧钟:骑士与龙》北美正式开播,场面血腥
2020/04/09 欧美动漫
Zend Studio 无法启动的问题解决方法
2008/12/04 PHP
ThinkPHP的Widget扩展实例
2014/06/19 PHP
PHP支付宝当面付2.0代码
2018/12/21 PHP
PHP静态方法和静态属性及常量属性的区别与介绍
2019/03/22 PHP
北京奥运官方网站幻灯切换效果flash版打包下载
2008/01/30 Javascript
WordPress JQuery处理沙发头像
2009/06/22 Javascript
理解Javascript_02_理解undefined和null
2010/10/11 Javascript
Easy.Ajax 部分源代码 支持文件上传功能, 兼容所有主流浏览器
2011/02/24 Javascript
js 实现css风格选择器(压缩后2KB)
2012/01/12 Javascript
js解决select下拉选不中问题
2014/10/14 Javascript
jQuery实现DIV层收缩展开的方法
2015/02/27 Javascript
jQuery左侧大图右侧小图焦点图幻灯切换代码分享
2015/08/19 Javascript
微信小程序 弹幕功能简单实例
2017/02/14 Javascript
JS实现线性表的顺序表示方法示例【经典数据结构】
2017/04/11 Javascript
基于bootstrap实现bootstrap中文网巨幕效果
2017/05/02 Javascript
详解javascript设计模式三:代理模式
2019/03/25 Javascript
vue-form表单验证是否为空值的实例详解
2019/10/29 Javascript
[00:26]TI7不朽珍藏III——冥界亚龙不朽展示
2017/07/15 DOTA
python3.0 模拟用户登录,三次错误锁定的实例
2017/11/02 Python
Python中利用xpath解析HTML的方法
2018/05/14 Python
Python 装饰器@,对函数进行功能扩展操作示例【开闭原则】
2019/10/17 Python
Python新手学习装饰器
2020/06/04 Python
python爬虫工具例举说明
2020/11/30 Python
matplotlib交互式数据光标实现(mplcursors)
2021/01/13 Python
施华洛世奇德国官网:SWAROVSKI德国
2017/02/01 全球购物
加拿大休闲和工业服装和鞋类零售商:L’Équipeur
2018/01/12 全球购物
比利时香水网上商店:NOTINO
2018/03/28 全球购物
Lookfantastic日本官网:英国知名护肤、化妆品和头发护理购物网站
2018/04/21 全球购物
太太口服液广告词
2014/03/20 职场文书
2014年乡镇个人工作总结
2014/12/03 职场文书
幼儿园新学期开学寄语
2015/05/27 职场文书
指导老师鉴定意见
2015/06/05 职场文书
文明礼仪主题班会
2015/08/13 职场文书
mysql多表查询-笔记七
2021/04/05 MySQL
为什么MySQL8新特性会修改自增主键属性
2022/04/18 MySQL