Golang二维切片初始化
本文主要介绍Golang二维切片初始化的实现 |
引言
之前,刷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, 4a := 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二维数组初始化来看一下,有点特别 func main() {x := 2y := 4table := make([][]int, x)for i := range table {table ...
- golang 二维切片
初始化: res := make([][length]int, length), 例如: res := make([][2]int, 10) fmt.Println(res) 输出: [[0 0] [ ...
- golang中的二维数组和二维切片
golang中数组和切片用的比较多,下面给个demo看看二维的数组和二维切片. package mainimport ("fmt" )func printarray(a [2][2 ...
- 二维数组初始化的形式有?
二维数组初始化的形式有? 数据类型 数组名[整常量表达式][ 整常量表达式]={ 初始化数据 }: 在{ }中给出各数组元素的初值,各初值之间用逗号分开.把{ }中的初值依次赋给各数组元素. 有如下几 ...
- c# 怎样从bitmap初始化image类_C#二维数组初始化概括(新手篇)
群友反馈的一个问题: 运行报错: 这个主要是数组定义的有问题,二维数组初始化:如下这样 string[,] aaa = new string[10, 10]; 其次得确保data在截取Substrin ...
- C语言的二维数组初始化的几种方式介绍(私藏大数组初始化方式)
C语言的二维数组初始化的几种方式介绍 1.直接赋值 2.循环对每个元素赋值 3.借用memset/memset_s初始化为0或-1 4.`数组所有元素初始化为相同值(用于大数组初始化贼方便)` 1.直 ...
- [Python] 二维数组初始化实践
背景 参考博客Python二维数组初始化问题_NobiShinnosuke的博客-CSDN博客_python 二维数组初始化,文中提到正确的初始化方式是a = [[0 for j in range(n ...
- 基于二维切片图序列的三维立体建模MATLAB仿真
目录 1.算法概述 2.仿真效果预览 3.核心MATLAB程序 4.完整MATLAB程序 1.算法概述 isosurface 等值面函数 调用格式: fv = isosurface(X,Y,Z,V,i ...
- c++ fill 二维数组初始化_C++如何给二维数组初始化
C++给二维数组初始化的方法:首先定义两个整型变量,并给二维数组初始化不同的数值:然后用二重循环,输出数组中的各个数值:最后用大括号括起来的数字直接赋值. 本文操作环境:Windows7系统,Dev- ...
最新文章
- codeforces 465 C. No to Palindromes!(暴力+思维)
- c++11 移动语义move semantics
- python用turtle调整文字位置_Python turtle学习笔记
- 查看linux文件目录的大小和文件夹包含的文件数
- java地铁最短,地铁最短路径
- 计算机设备管理系统论文,设备管理系统论文-.doc
- Cadence Orcad Capture在元件库中修改默认封装图文视频教程
- robocode_Robocode大师的秘密,多态敌人缓存
- C/C++试题集——字符串篇
- 【安装配置】DirectAdmin安装Nginx方法
- 中国大学moocpython笔记_中国大学MOOC —— 学习笔记(二)
- 克里斯·弗雷格利(Chris Fregly)在PANCAKE STACK研讨会和数据管道上
- 入坑树莓派——进阶(DS18B20温度传感器)
- leaflet绘制具有虚线框的多边形(125)
- Python 五行代码实现类似全能扫描王和office Lens的扫描彩色增强滤镜效果
- 10+ 小故事揭秘高频「操作系统面试题」
- 电商API店铺订单接口(代码对接教程)
- EditPlus设置保存时不生成bak文件
- 目前最经典有效的“阅读方法”——SQ3R阅读法
- js实现匹配到文字设置为红色