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

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

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

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

相关文章
|
8月前
|
安全 Go
这一次,带你深入浅出Go语言切片和数组
这一次,带你深入浅出Go语言切片和数组
66 0
|
资源调度 API 开发者
Three入门 【基础知识,并搭建第一个场景】
Three入门 【基础知识,并搭建第一个场景】
106 0
|
存储
【数据结构】C--顺序表1.0版本(本文非常适合小白观看,已尽力详解,以及图解也是尽量列举)(上)
【数据结构】C--顺序表1.0版本(本文非常适合小白观看,已尽力详解,以及图解也是尽量列举)(上)
【数据结构】C--顺序表1.0版本(本文非常适合小白观看,已尽力详解,以及图解也是尽量列举)(下)
【数据结构】C--顺序表1.0版本(本文非常适合小白观看,已尽力详解,以及图解也是尽量列举)(下)
开发指南044-切片编程
延续上篇,通过切片来具体实现对应注解:
|
3月前
|
存储 安全 Go
Go语言切片:从入门到精通的深度探索###
本文深入浅出地剖析了Go语言中切片(Slice)这一核心概念,从其定义、内部结构、基本操作到高级特性与最佳实践,为读者提供了一个全面而深入的理解。通过对比数组,揭示切片的灵活性与高效性,并探讨其在并发编程中的应用优势。本文旨在帮助开发者更好地掌握切片,提升Go语言编程技能。 ###
【数据结构】C--顺序表1.0版本(本文非常适合小白观看,已尽力详解,以及图解也是尽量列举)(中)
【数据结构】C--顺序表1.0版本(本文非常适合小白观看,已尽力详解,以及图解也是尽量列举)(中)
|
Go 索引
终于学会使用Go语言切片 切片操作看这里就够了
终于学会使用Go语言切片 切片操作看这里就够了
71 1
终于学会使用Go语言切片 切片操作看这里就够了
|
缓存 Java Go
Go语言切片内存优化技巧和实战案例
Go语言切片内存优化技巧和实战案例
148 0
|
前端开发
快速入门less原理以及常用基本知识
快速入门less原理以及常用基本知识(动态计算rem)
194 0
快速入门less原理以及常用基本知识