本文主要介绍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二维切片初始化相关推荐

  1. golang二维数组初始化

    golang二维数组初始化来看一下,有点特别 func main() {x := 2y := 4table := make([][]int, x)for i := range table {table ...

  2. golang 二维切片

    初始化: res := make([][length]int, length), 例如: res := make([][2]int, 10) fmt.Println(res) 输出: [[0 0] [ ...

  3. golang中的二维数组和二维切片

    golang中数组和切片用的比较多,下面给个demo看看二维的数组和二维切片. package mainimport ("fmt" )func printarray(a [2][2 ...

  4. 二维数组初始化的形式有?

    二维数组初始化的形式有? 数据类型 数组名[整常量表达式][ 整常量表达式]={ 初始化数据 }: 在{ }中给出各数组元素的初值,各初值之间用逗号分开.把{ }中的初值依次赋给各数组元素. 有如下几 ...

  5. c# 怎样从bitmap初始化image类_C#二维数组初始化概括(新手篇)

    群友反馈的一个问题: 运行报错: 这个主要是数组定义的有问题,二维数组初始化:如下这样 string[,] aaa = new string[10, 10]; 其次得确保data在截取Substrin ...

  6. C语言的二维数组初始化的几种方式介绍(私藏大数组初始化方式)

    C语言的二维数组初始化的几种方式介绍 1.直接赋值 2.循环对每个元素赋值 3.借用memset/memset_s初始化为0或-1 4.`数组所有元素初始化为相同值(用于大数组初始化贼方便)` 1.直 ...

  7. [Python] 二维数组初始化实践

    背景 参考博客Python二维数组初始化问题_NobiShinnosuke的博客-CSDN博客_python 二维数组初始化,文中提到正确的初始化方式是a = [[0 for j in range(n ...

  8. 基于二维切片图序列的三维立体建模MATLAB仿真

    目录 1.算法概述 2.仿真效果预览 3.核心MATLAB程序 4.完整MATLAB程序 1.算法概述 isosurface 等值面函数 调用格式: fv = isosurface(X,Y,Z,V,i ...

  9. c++ fill 二维数组初始化_C++如何给二维数组初始化

    C++给二维数组初始化的方法:首先定义两个整型变量,并给二维数组初始化不同的数值:然后用二重循环,输出数组中的各个数值:最后用大括号括起来的数字直接赋值. 本文操作环境:Windows7系统,Dev- ...

最新文章

  1. codeforces 465 C. No to Palindromes!(暴力+思维)
  2. c++11 移动语义move semantics
  3. python用turtle调整文字位置_Python turtle学习笔记
  4. 查看linux文件目录的大小和文件夹包含的文件数
  5. java地铁最短,地铁最短路径
  6. 计算机设备管理系统论文,设备管理系统论文-.doc
  7. Cadence Orcad Capture在元件库中修改默认封装图文视频教程
  8. robocode_Robocode大师的秘密,多态敌人缓存
  9. C/C++试题集——字符串篇
  10. 【安装配置】DirectAdmin安装Nginx方法
  11. 中国大学moocpython笔记_中国大学MOOC —— 学习笔记(二)
  12. 克里斯·弗雷格利(Chris Fregly)在PANCAKE STACK研讨会和数据管道上
  13. 入坑树莓派——进阶(DS18B20温度传感器)
  14. leaflet绘制具有虚线框的多边形(125)
  15. Python 五行代码实现类似全能扫描王和office Lens的扫描彩色增强滤镜效果
  16. 10+ 小故事揭秘高频「操作系统面试题」
  17. 电商API店铺订单接口(代码对接教程)
  18. EditPlus设置保存时不生成bak文件
  19. 目前最经典有效的“阅读方法”——SQ3R阅读法
  20. js实现匹配到文字设置为红色

热门文章

  1. 异步爬虫框架与协程浅析
  2. gunicorn源码分析
  3. 文档信息的向量化-NNLM模型和word2vec
  4. 人工智能及其应用(第5版).蔡自兴-5章课后习题。【部分答案】
  5. 信息安全的一些东西,初步查询了解!
  6. 技巧 | OpenCV程序执行时间计算
  7. OpenCV直线拟合检测
  8. 年薪百万是什么感觉?
  9. 【深度学习基础】一步一步讲解卷积神经网络
  10. 【OpenCV 4开发详解】形态学应用