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

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

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

相关文章
Go语言中的数组、切片和映射解析
Go语言中的数组、切片和映射解析
|
6月前
第六章 利用数组处理批量数据
第六章 利用数组处理批量数据
29 0
|
6月前
|
存储 传感器 机器学习/深度学习
Java数组全套深入探究——进阶知识阶段6、三维数组以及更多维度数组的概念和用法
Java数组全套深入探究——进阶知识阶段6、三维数组以及更多维度数组的概念和用法
110 0
|
Go 索引
终于学会使用Go语言切片 切片操作看这里就够了
终于学会使用Go语言切片 切片操作看这里就够了
64 1
终于学会使用Go语言切片 切片操作看这里就够了
终于掌握append为切片添加元素的诀窍 切片动态增长看这里
终于掌握append为切片添加元素的诀窍 切片动态增长看这里
89 1
|
存储 编译器
数据类型的本质分析
数据类型的本质分析
102 0
|
存储 索引 Python
Python列表操作指南:索引、切片、遍历与综合应用
Python列表操作指南:索引、切片、遍历与综合应用
286 0
|
机器学习/深度学习 人工智能 开发者
Numoy 数组切片、迭代|学习笔记
快速学习 Numoy 数组切片、迭代
139 0
Numoy 数组切片、迭代|学习笔记
|
程序员 Go 开发者
使用切片的三种方式|学习笔记
快速学习使用切片的三种方式。
168 0
使用切片的三种方式|学习笔记
|
Go vr&ar 开发者
切片注意事项和细节(3) | 学习笔记
简介:快速学习切片注意事项和细节(3)
切片注意事项和细节(3) | 学习笔记