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语言-为什么返回值为接口类型,却返回结构体
Apr 24 Golang
golang 生成对应的数据表struct定义操作
Apr 28 Golang
golang import自定义包方式
Apr 29 Golang
Go标准容器之Ring的使用说明
May 05 Golang
浅谈golang package中init方法的多处定义及运行顺序问题
May 06 Golang
go web 预防跨站脚本的实现方式
Jun 11 Golang
Go语言基础知识点介绍
Jul 04 Golang
一文搞懂Golang 时间和日期相关函数
Dec 06 Golang
Go 中的空白标识符下划线
Mar 25 Golang
Go语言的协程上下文的几个方法和用法
Apr 11 Golang
Golang数据类型和相互转换
Apr 12 Golang
Golang MatrixOne使用介绍和汇编语法
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
php常用数学函数汇总
2014/11/21 PHP
使用PHP实现生成HTML静态页面
2015/11/18 PHP
yii2.0整合阿里云oss上传单个文件的示例
2017/09/19 PHP
Thinkphp5行为使用方法汇总
2017/12/21 PHP
Apache站点配置SSL强制跳转443
2021/03/09 Servers
当自定义数据属性为json格式字符串时jQuery的data api问题探讨
2013/02/18 Javascript
jquery怎样实现ajax联动框(一)
2013/03/08 Javascript
用jquery中插件dialog实现弹框效果实例代码
2013/11/15 Javascript
jquery使用$(element).is()来判断获取的tagName
2014/08/24 Javascript
JS实现的倒计时效果实例(2则实例)
2015/12/23 Javascript
JQuery查找子元素find()和遍历集合each的方法总结
2017/03/07 Javascript
微信小程序 侧滑删除(左滑删除)
2017/05/23 Javascript
详解vue.js数据传递以及数据分发slot
2018/01/20 Javascript
vue2.0 使用element-ui里的upload组件实现图片预览效果方法
2018/09/04 Javascript
vue 基于element-ui 分页组件封装的实例代码
2018/12/10 Javascript
Element-ui自定义table表头、修改列标题样式、添加tooltip、:render-header使用
2019/04/11 Javascript
Vue.js组件props数据验证实现详解
2019/10/19 Javascript
JavaScript将数组转换为链表的方法
2020/02/16 Javascript
JS co 函数库的含义和用法实例总结
2020/04/08 Javascript
让Django支持Sql Server作后端数据库的方法
2018/05/29 Python
Python实现网页截图(PyQT5)过程解析
2019/08/12 Python
给大家整理了19个pythonic的编程习惯(小结)
2019/09/25 Python
Python有参函数使用代码实例
2020/01/06 Python
如何基于python3和Vue实现AES数据加密
2020/03/27 Python
django API 中接口的互相调用实例
2020/04/01 Python
python argparse模块通过后台传递参数实例
2020/04/20 Python
15款Python编辑器的优缺点,别再问我“选什么编辑器”啦
2020/10/19 Python
使用phonegap获取设备的一些信息方法
2017/03/31 HTML / CSS
香港草莓网土耳其网站:Strawberrynet TR
2017/03/02 全球购物
美国名牌手表折扣网站:Jomashop
2020/05/22 全球购物
三下乡活动方案
2014/01/31 职场文书
教师见习期自我鉴定
2014/04/28 职场文书
小学运动会开幕词
2015/01/28 职场文书
邀请书格式范文
2015/02/02 职场文书
投标售后服务承诺书
2015/04/29 职场文书
运动会表扬稿范文
2015/05/05 职场文书