切片基本介绍和入门 | 学习笔记

简介: 简介:快速学习切片基本介绍和入门

开发者学堂课程【Go 语言核心编程 - 基础语法、数组、切片、Map :切片基本介绍和入门】学习笔记,与课程紧密联系,让用户快速学习知识。

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


切片基本介绍和入门

 

内容介绍:

一、需要切片的原因

二、切片的基本介绍

三、切片的基本使用


一、需要切片的原因

需求:需要一个数组用于保存学生成绩,但是学生的个数是不确定的,应该如何解决?(如果用数组,而数组的大小事固定的对于变化不一的情况不适用)

解决方案:使用切片(可以简单的理解成动态的数组;我们需要保存一组不确定的数据时就可以使用切片)

 

二、切片的基本介绍

1、切片的英文是 slice

2、切片是数组的一个引用,因此切片是引用类型,在进行传递时,遵守引用传递的机制。

3、切片的使用和数组类似,遍历切片、访间切片的元素和求切片长度 len(slice)都一样。(切片和数组基本相似,不完全一样;但在遍历切片,访问切片的元素和求切片的长度是一样的)

4、切片的长度是可以变化的,因此切片是一个可以动态变化数组。(这是跟数组的一个较大的区别,数组的长度不可变,如果数组元素过多他便越界,但切片会随着数据的增加而动态增长;切片不完全是一个数组)

5、切片定义的基本语法:

var 变量名[]类型  (在切片名中放的类型,中括号不需要填长度,中括号就表示一个切片)

比如: var a []int  (表示 a 是一个切片的名称,这个切片可以放随机个 int 类型)

 

三、切片的基本使用

1. 在 chapter07里新建一个文件夹名为 slicedemo01,再在此文件下新建一个文件名为 main.go

1代码

package main

import (

"fmt"

func main(){   //演示切片的基本使用

var intArr [5]int = [...]int[1,22,33,66,99)  

//定义一个int数组,大小为5,初始化它为int{1,22,33,66,99};一共五个元素

slice := intArr[1:3]   //声明/定义一个切片

//1. slice 就是切片名

//2. intArr[1:3]表示slice引用到intArr这个数组

//3.引用 intArr 数组的起始下标为1,最后的下标为3(但是不包含3);下标为1的元素是22,下标为3的元素是66,不包含下标为3就是取元素22和33

slice := intArr[1:3]

fmt.Print1n("intArr=", intArr)  

fmt.Println("slice的元素是=", slice)  //22,33

fmt.Println( "slice的元素个数=", len(slice)) // 2

fmt.Println("slice 的容量=",cap(slice))  //切片的容量是可以动态变化,也就是当切片容量不够时它便会自动增长;一般来讲cap是长度的两倍,因为它的容量会预先增加,等空间不够再增加空间,效率会更高

}

2打开浏览器搜索“go语言标准库文档中文版“找到 bliutin,然后找到 cap 函数,出现以下内容:

内建函数 cap 返回 v 的容量,这取决于具体类型﹔

切片:切片的容里〈底层数组的长度〉;若 v 为 nil.cap(v)即为零

(切片的容量可以用 cap 来进行计算)

3运行以上代码,查看 slice 的元素、个数和容量

运行结果如下:

image.png

一般容量是个数的两倍;数组没有容量的概念。

相关文章
|
7月前
|
安全 Go
这一次,带你深入浅出Go语言切片和数组
这一次,带你深入浅出Go语言切片和数组
60 0
|
2月前
|
数据采集 监控 算法
原子钟的基本介绍
【10月更文挑战第7天】本文介绍原子钟是一种利用原子跃迁频率作为基准的高精度计时设备,广泛应用于通信、导航、科学研究等领域。铯原子钟是最精确的计时设备之一,基于铯133原子的超精细跃迁,频率为9,192,631,770 Hz。其关键部件包括铯束源、微波腔、磁态选择器、检测系统和反馈回路。原子钟在GPS、电信、金融市场等应用中至关重要,软件开发需考虑高精度时间同步、数据处理、硬件接口和性能监控。
155 59
开发指南044-切片编程
延续上篇,通过切片来具体实现对应注解:
|
2月前
|
存储 安全 Go
Go语言切片:从入门到精通的深度探索###
本文深入浅出地剖析了Go语言中切片(Slice)这一核心概念,从其定义、内部结构、基本操作到高级特性与最佳实践,为读者提供了一个全面而深入的理解。通过对比数组,揭示切片的灵活性与高效性,并探讨其在并发编程中的应用优势。本文旨在帮助开发者更好地掌握切片,提升Go语言编程技能。 ###
|
7月前
|
存储 编译器 Serverless
go语言第四章(数组和切片)
go语言第四章(数组和切片)
58 0
|
Go 索引
GO语言基础教程8——切片
切片(Slice)是一个拥有相同类型元素的可变长度的序列。它是基于数组类型做的一层封装。它非常灵活,支持自动扩容
|
存储 网络协议 测试技术
文件的基本介绍 | 学习笔记
快速学习文件的基本介绍
文件的基本介绍 | 学习笔记
|
存储 Go 开发者
数组排序的基本介绍|学习笔记
这章重点介绍排序和查找,这里排序和查找都是针对数组的。
108 0
数组排序的基本介绍|学习笔记
|
编译器 Scala 开发者
元组的基本介绍和创建 | 学习笔记
快速学习元组的基本介绍和创建
|
Java Scala 开发者
函数基本介绍和快速入门|学习笔记
快速学习函数基本介绍和快速入门。
115 0
下一篇
无影云桌面