• 设为首页
  • 点击收藏
  • 手机版
    手机扫一扫访问
    迪恩网络手机版
  • 关注官方公众号
    微信扫一扫关注
    迪恩网络公众号

go语言--Array,Slice,Map

原作者: [db:作者] 来自: [db:来源] 收藏 邀请

数组:

定义:golang中的数组和C语言中的数组是相似的,在 Go 语言中数组是固定长度的数据类型,它包含相同类型的连续的元素,这些元素可以是内建类型,像数字和字符串,也可以是结构类型,元素可以通过唯一的索引值访问,从 0 开始。
数组是很有价值的数据结构,因为它的内存分配是连续的,内存连续意味着可是让它在 CPU 缓存中待更久,所以迭代数组和移动元素都会非常迅速。

使用方式:
1. 基本定义:

2. 快速定义

3. 直接复制一整个数组

4. 函数中使用数组一般是使用指针,不然的话类似一个100万的数组,每次使用都要调用8M的内存

SLICE:

定义:slice 是一种可以动态数组,可以按我们的希望增长和收缩。它的增长操作很容易使用,因为有内建的 append 方法。我们也可以通过 relice 操作化简 slice。因为 slice 的底层内存是连续分配的,所以 slice 的索引,迭代和垃圾回收性能都很好。

slice 是对底层数组的抽象和控制。它包含 Go 需要对底层数组管理的三种元数据,分别是:

  1. 指向底层数组的指针
  2. slice 中元素的长度
  3. slice 的容量(可供增长的最大值)

切片长度和容量的区别

  1. 切片拥有长度和容量。
  2. 切片的长度是它所包含的元素个数。
  3. 切片的容量是从它的第一个元素开始数,到其底层数组元素末尾的个数。
  4. 切片 s 的长度和容量可通过表达式 len(s) 和 cap(s) 来获取。
  5. 大概能理解容量和长度的大概意思是,

初始化方式:

  1. 默认定义方式,如果只指定了长度,那么容量默认等于长度。

  2. 定义长度和容量

  3. 正常slice,使用apend函数,容量足够的话,那么就会在原有的内存上增加,但是如果容量不足的,就会从新分配一个新的地址空间

map结构:

定义:简单的说就是一个类似php的字典,每个key对应一个value,他的特定是他是无序的,不会按照你的存入顺序而排序,它也可以迭代。

定义方式:

  1. make方法定义和其他使用:=方法一样直接定义


鲜花

握手

雷人

路过

鸡蛋
该文章已有0人参与评论

请发表评论

全部评论

专题导读
上一篇:
GO运行组件浅析-内存分配发布时间:2022-07-10
下一篇:
consoleWriter.go发布时间:2022-07-10
热门推荐
热门话题
阅读排行榜

扫描微信二维码

查看手机版网站

随时了解更新最新资讯

139-2527-9053

在线客服(服务时间 9:00~18:00)

在线QQ客服
地址:深圳市南山区西丽大学城创智工业园
电邮:jeky_zhao#qq.com
移动电话:139-2527-9053

Powered by 互联科技 X3.4© 2001-2213 极客世界.|Sitemap