使用切片的区别分析|学习笔记

简介: 快速学习使用切片的区别分析。

开发者学堂课程【GO 语言核心编程-基础语法、数组、切片、Map:使用切片的区别分析学习笔记,与课程紧密联系,让用户快速学习知识。

课程地址:https://developer.aliyun.com/learning/course/625/detail/9637


使用切片的区别分析

 

一、切片的使用

方式一和方式二的区别(面试时会作为一个考点来考察,就用方式一和方式二来回答):

方式1是直接引用数组,这个数组是事先存在的,程序员是可见的。

(类似于下图:

image.png

实际上,切片里有三个部分,其中第一个部分指向了引用数组的第几个元素的地址,后面的是长度和 cap,这是第一种方式的切片的内存图

方式2是通过 make 来创建切片,make 也会创建一个数组(make 本身它就是创建一个数组),是由切片在底层进行维护(这个数组没有名称),程序员是看不见的。make 创建切片的示意图:

image.png

(它 make 一个 int 这样的切片,4是它的 len,我们可以看到它仍然有一个地址、长度和 cap,这时它的 len 和 cap 是一样的,指针指向第一个元素(图中错误),但是想要通过数组将地址打出来只能通过 slice 来取,图中第二排对应一个[4]int 的数组,然后切片的第一个部分就指向它内部创建的这个数组的第一个元素的地址;如果要访问 make 出来的数组里面的元素,只能通过 slice 来切片)

相关文章
|
弹性计算 监控 数据可视化
ecs资源可视化
ecs资源可视化
208 3
|
Java API 网络架构
关于 Spring Integration 你知道多少,包含集成MQTT案例讲述及源码3
关于 Spring Integration 你知道多少,包含集成MQTT案例讲述及源码
1918 0
关于 Spring Integration 你知道多少,包含集成MQTT案例讲述及源码3
搭建一个简单的直播网站
我是一个比较爱看直播的人,经常空闲的时候会看一看LOL、吃鸡的直播。正好最近在研究阿里云的视频直播服务,突发奇想,自己来搭建一个简单的直播平台!主要会用到的东西有:视频直播、ECS、OBS、阿里播放器。
10467 1
|
人工智能 程序员 测试技术
灵码改善生活
【10月更文挑战第6天】通义灵码,是基于通义大模型的 AI 研发辅助工具,包含 AI 编码助手和 AI 程序员。可以帮助开发和学习,非常值得推荐,零距离接触AI
288 2
|
11月前
|
前端开发 C# Windows
解决Gradle下载缓慢的问题,将-bin改为-all
【11月更文挑战第15天】PropertyGrid 是一种用户界面组件,允许用户直观地查看和编辑对象属性。WPF 中虽无内置控件,但可通过组合 Expander 和 DataGrid 实现基本功能,或使用 PropertyTools 等第三方库获得更强大的功能。
250 1
|
缓存 监控 安全
电商行业中 API 接口的常见问题和解决方法?
电商行业中 API 接口面临的常见问题包括安全性问题、性能问题、兼容性问题、可靠性问题和可维护性问题。针对这些问题,可以采取相应的解决方法,如采用加密技术、优化数据库查询、制定统一的接口规范、进行容错处理、采用良好的代码结构等。
412 0
|
前端开发 安全 JavaScript
基于Springboot实现校园疫情防控管理系统平台(一)
基于Springboot实现校园疫情防控管理系统平台
293 0
数据库系统工程师考点笔记
数据库系统工程师考点笔记
1330 0
|
SQL 分布式计算 DataWorks
阿里云大数据ACA及ACP复习题(321~330)
本人备考阿里云大数据考试时自行收集准备的题库,纯手工整理的,能够覆盖到今年7月份,应该是目前最新的,发成文章希望大家能一起学习,不要花冤枉钱去买题库背了,也希望大家能够顺利通关ACA和ACP考试(自己整理解析也需要时间,可能有更新不及时的情况哈)
|
SQL JSON 开发框架
一次偶然的机会,让我遇见了amis
一次偶然的机会,让我遇见了amis