Golang二维切片初始化的实现
作者:Dreamcat 时间:2024-05-09 14:57:54
引言
之前,刷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 // 报错
总结
来源:https://juejin.cn/post/6948325364867268644
标签:Golang,二维切片,初始化
0
投稿
猜你喜欢
快速解决js动态改变dom元素属性后页面及时渲染的问题
2024-05-02 16:17:39
python networkx 包绘制复杂网络关系图的实现
2021-03-27 06:11:39
MySQL的root密码丢失解决方法
2011-05-05 15:56:00
tensorflow之如何使用GPU而不是CPU问题
2023-07-06 13:05:48
Python Django模板之模板过滤器与自定义模板过滤器示例
2023-10-31 20:37:48
关于Python 位运算防坑指南
2022-06-13 08:06:55
利用python实现简单的情感分析实例教程
2021-12-27 18:19:42
如何实现python爬虫爬取视频时实现实时进度条显示
2022-07-01 04:17:12
Python while true实现爬虫定时任务
2021-02-10 13:35:30
python修改字典键(key)的方法
2023-04-16 20:26:57
Jupyter Notebook远程登录及密码设置操作
2022-08-29 08:43:04
CSS控制Table表格文字样式
2008-06-11 18:53:00
Python selenium如何设置等待时间
2023-08-31 18:53:39
新手必备的Python实用技巧和工具
2022-08-20 04:59:01
python的列表生成式,生成器和generator对象你了解吗
2022-05-15 15:10:04
python引用DLL文件的方法
2021-01-17 03:35:19
PHP获取类私有属性的3种方法
2023-11-20 10:32:16
Python中的re正则表达式模块
2022-09-13 15:07:40
python学习数据结构实例代码
2023-09-20 22:56:32
如何制作K线图?
2010-06-29 17:25:00