Jquery中文网 www.jquerycn.cn
Jquery中文网 >  后端编程  >  Go语言  >  正文 Go数组、切片、映射的原理--简明解析

Go数组、切片、映射的原理--简明解析

发布时间:2021-05-20   编辑:www.jquerycn.cn
jquery中文网为您提供Go数组、切片、映射的原理--简明解析等资源,欢迎您收藏本站,我们将为您提供最新的Go数组、切片、映射的原理--简明解析资源

数组、切片、映射是Golang的最重要的数据结构,下面是对这3种数据结构的一点个人总结:

一、数组

  • 数组是切片和映射的基础数据结构。
  • 数组是一个长度固定的数据类型,存储着一段具有相同数据类型元素的连续内存块。
  • 因为数组占用的内存是连续分配的,所以对数组的操作速度很快。
  • 声明数组的方式:4种
    • var array1 [5]int
    • array1 := [5]int{3,5,6,3,2}
    • array1 := [...]int{3,4,7,8,1} //根据数组字面量中元素的个数来确定数组的长度
    • array1 := [5]int{0:3,3:5,4:8} //只初始化指定索引的元素,其余元素保持零值
  • 数组元素的类型可以为任何内置类型,也可以是某种结构类型,也可以是指针类型。
  • 数组变量的类型包括数组长度和元素的类型,只有两部分都相同的数组才可相互赋值。
  • 多维数组:数组本身只有一个维度,只能通过组合多个数组来创建多维数组
    • var array [4][2]int
    • array := [4][2]int{2:{20,21},3:{41,25}}
    • array := [4][2]int{2:{1:21},3:{0:41}}
    • array[2][1] = 10
  • 在函数间传递数组:由于在函数间传递变量时,传递的总是变量的值的副本,所以在传递数组变量时将拷贝整个数组!在定义函数时,对于较大的数据类型应该把参数设计为指针类型,这样在调用函数时,只需在栈上分配给每个指针8字节的内存,但这意味着会改变指针指向的值(共享的内存),其实大部分情况下应该使用切片类型,而不是数组。
到此这篇关于“Go数组、切片、映射的原理--简明解析”的文章就介绍到这了,更多文章或继续浏览下面的相关文章,希望大家以后多多支持JQ教程网!

您可能感兴趣的文章:
Go数组、切片、映射的原理--简明解析
想系统学习GO语言(Golang
切片 里面包含interface_Golang数据结构详解之切片
go html提取纯文本_Go 语言高性能编程
Go语言实现HTTP压测工具(2)——Golang语言基础学习和使用
Golang 映射 声明使用原理及方法
零基础学习Go语言
golang 解析struct为map_Golang 的引用类型底层实现
编程书说的“Go程序员应该让聚合类型的零值也具有意义”是在讲什么
golang key map 所有_Golang面试知识点总结

[关闭]