Go+切片

Posted XiaoLin__Java

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Go+切片相关的知识,希望对你有一定的参考价值。

切片

概述

    切片是程序员对数组对象的抽象,在Go+里面,数组长度是不可变的,这样会造成我们使用集合的时候比较笨重,只有在固定的场所才可以使用。

Go+提供了一种较为灵活的数组,我们可以理解为动态数组,他对比数组来说长度是不固定的,同时可以追加元素,在追加元素的时候,可以动态扩容,他就是切片。

定义切片

    定义切片和定义变量一样,语法如下:

var 变量名 []切片类型
var age []int

    切片是不需要声明长度的,我们也可以使用内置函数——make()来定义切面。

var 变量名 []切片类型 = make([]类型, 长度)
var age []int = make([]int,10)

    当然也可以简写。

变量名 := make([]类型, 长度)
age := make([]int,10)

    这里的长度就是我们给这个切片赋值的初始长度。

切片初始化

    定义完了切片,我们就要开始对我们定义的切片进行初始化操作了。初始化切片的语法如下:

切片名 := [] 切片类型 初始化的值
num :=[] int 1,2,3,4,5

    这种方式最简单粗暴,直接初始化切片,这样我们就初始化了一个切片,切片里面有1,2,3,4,5这些值,切片的长度为5。

切片的两种内置函数

len()

    len()函数表示切片的长度,我们可以直接使用这个函数去获取这个切片的长度。

num :=[] int 1,2,3,4,5
len(num) //5

cap()

    有了长度以后,我们在实际开发中可能还需要查看当前切片的容量大小,我们可以使用cap()函数来进行查看。

num :=[] int 1,2,3,4,5
cap(num) //5

切片截取

    我们日常中还会使用的一个就是切片的截取,我们可以设置索引的方式来动态截取切片。

num :=[] int 1,2,3,4,5
println("这是原始的切片",num) // 这是原始的切片 [1 2 3 4 5]
println("这是截取后的切片",num[0:2]) // 这是截取后的切片 [1 2]

    我们直接在切片后使用[开始的索引,结束的索引],即可动态截取切片,注意这个是含头不含尾,也就是意味着我们截取出来的只是包含起始值,但是不包含结束值。

以上是关于Go+切片的主要内容,如果未能解决你的问题,请参考以下文章

Go语言切片

Go切片实现

从零开始学Go之容器:切片

《Go题库·1》Golang里的数组和切片有了解过吗?

Go 语言泛型编程之切片

Go笔记:切片