8.24Go之容器之多维数组
时间:2021-08-24
本文章向大家介绍8.24Go之容器之多维数组,主要包括8.24Go之容器之多维数组使用实例、应用技巧、基本知识点总结和需要注意事项,具有一定的参考价值,需要的朋友可以参考一下。
多维数组的一些特点
-
数组属于值类型,多维数组的所有维度都会在创建时自动初始化零值
-
多维数组尤其适合管理具有父子关系或者与坐标系相关联的数据。
多维数组的声明语法:
var 数组变量名 [元素数量][元素数量][元素数量]...[元素数量]Type
声明二维数组
直接声明二维整型数组:
var arry [4][2]int
使用数组字面量来声明并初始化一个二维整型数组:
array = [4][2]int{{10, 11}, {20, 21}, {30, 31}, {40, 41}}
声明并初始化指定的索引:
array = [4][2]int{1: {20, 21}, 3: {40, 41}}
声明并初始化指定元素:
array = [4][2]int{1: {0: 20}, 3: {1: 41}}
多维数组的内存模型
代码示例:
package main
import "fmt"
var array [4][3]int
func main() {
array = [4][3]int{{10, 11}, {20, 21}, {30, 31}, {40, 41}}
fmt.Println(array)
array = [4][3]int{1:{0, 21}, 3:{1:41}}
fmt.Println(array)
}
访问多维数组的元素
根据对应的索引一层一层的去访问:
var arrays [2][2]int
func main(){
arrays[0][0] = 10
arrays[0][1] = 20
arrays[1][0] = 30
arrays[1][1] = 40
for i, j := range arrays {
fmt.Printf("第%d位的值是%d\n", i, j)
}
}
数组之间的赋值需要类型一致--->数组长度、元素中数据的类型:
package main
import "fmt"
func main() {
var array [2][2]int
var arrays [2][2]int
arrays[0][0] = 10
arrays[0][1] = 20
arrays[1][0] = 30
arrays[1][1] = 40
array = arrays
for i, j := range array {
fmt.Printf("第%d位的值是%d\n", i, j)
}
}
因为数组是值类型,所以可以独立的复制某个维度:
package main
import "fmt"
func main(){
var array2 [2]int = arrays[0]
var value int = arrays[0][1]
for j, k := range array2 {
fmt.Printf("第%d位的值是%d\n", j, k)
}
fmt.Println(value)
}
It's a lonely road!!!
原文地址:https://www.cnblogs.com/JunkingBoy/p/15181779.html
- 致研究者:2018 AI研究趋势
- redis 学习笔记(3)-master/slave(主/从模式)
- 解决Chrome或其它WebKit浏览器input和textarea的黄色/蓝色边框问题
- eclipse/intellij Idea集成jetty
- nginx学习(1):编译、安装、启动
- Immutable(不可变)集合
- nginx学习(2):启动gzip、虚拟主机、请求转发、负载均衡
- 使用WiX制作简单MSI安装程序
- 企业应用通用架构图
- CacheManager:–个通用缓存接口抽象类库
- silverlight: http请求的GET及POST示例
- 如何判断AI创造物能够成为“作品”?附独家视频讲解
- 程序员最喜欢的五大神器
- UE4新手编程之创建C++项目
- JavaScript 教程
- JavaScript 编辑工具
- JavaScript 与HTML
- JavaScript 与Java
- JavaScript 数据结构
- JavaScript 基本数据类型
- JavaScript 特殊数据类型
- JavaScript 运算符
- JavaScript typeof 运算符
- JavaScript 表达式
- JavaScript 类型转换
- JavaScript 基本语法
- JavaScript 注释
- Javascript 基本处理流程
- Javascript 选择结构
- Javascript if 语句
- Javascript if 语句的嵌套
- Javascript switch 语句
- Javascript 循环结构
- Javascript 循环结构实例
- Javascript 跳转语句
- Javascript 控制语句总结
- Javascript 函数介绍
- Javascript 函数的定义
- Javascript 函数调用
- Javascript 几种特殊的函数
- JavaScript 内置函数简介
- Javascript eval() 函数
- Javascript isFinite() 函数
- Javascript isNaN() 函数
- parseInt() 与 parseFloat()
- escape() 与 unescape()
- Javascript 字符串介绍
- Javascript length属性
- javascript 字符串函数
- Javascript 日期对象简介
- Javascript 日期对象用途
- Date 对象属性和方法
- Javascript 数组是什么
- Javascript 创建数组
- Javascript 数组赋值与取值
- Javascript 数组属性和方法
- Java并发编程
- 让终端支持https,移植OpenSSL和libcurl到嵌入式linux,遇到的问题总结
- ComplexHeatmap|根据excel表绘制突变景观图(oncoplot)
- R-plotly|甘特图(Gantt chart)- 一不小心年中了,立个flag
- XXE漏洞那些事儿(JAVA)
- Hexo 建站过程
- Tidyverse|tidyr数据重塑之gather,spread(长数据宽数据转化)
- fastjson中的jndi注入
- R|生存分析-结果整理
- 实验吧-因缺思汀的绕过
- MySQL 用户与授权管理详解
- 基本知识|R语言简单饼图的绘制
- 分享一个有趣且牛逼的漏洞
- ggplot2-annotation|画图点“精”,让图自己“解释”
- 使用curl工具调试https接口