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

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

开发者学堂课程【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 来切片)

相关文章
|
Java API 网络架构
关于 Spring Integration 你知道多少,包含集成MQTT案例讲述及源码3
关于 Spring Integration 你知道多少,包含集成MQTT案例讲述及源码
2190 0
关于 Spring Integration 你知道多少,包含集成MQTT案例讲述及源码3
|
弹性计算 监控 数据可视化
ecs资源可视化
ecs资源可视化
242 3
|
前端开发 安全 JavaScript
基于Springboot实现校园疫情防控管理系统平台(一)
基于Springboot实现校园疫情防控管理系统平台
328 0
|
XML 开发框架 监控
JAVA微服务入门总结分享 ——《我的Java打怪日记》
笔者前某国企担任前端开发,两年半经验,某平台签约作者,全栈方向。
3295 0
JAVA微服务入门总结分享  ——《我的Java打怪日记》
|
Web App开发 存储 测试技术
|
4天前
|
数据采集 人工智能 安全
|
13天前
|
云安全 监控 安全
|
5天前
|
自然语言处理 API
万相 Wan2.6 全新升级发布!人人都能当导演的时代来了
通义万相2.6全新升级,支持文生图、图生视频、文生视频,打造电影级创作体验。智能分镜、角色扮演、音画同步,让创意一键成片,大众也能轻松制作高质量短视频。
1102 152