Golang基础-切片

切片

1.切片的引入

【1】切片(slice)是golang中一种特有的数据类型
【2】数组有特定的用处,但是却有一些呆板(数组长度固定不可变),所以在 Go 语言的代码里并不是特别常见。相对的切片却是随处可见的,切片是一种建立在数组类型之上的抽象,它构建在数组之上并且提供更强大的能力和便捷。
【3】切片(slice)是对数组一个连续片段的引用,所以切片是一个引用类型。这个片段可以是整个数组,或者是由起始和终止索引标识的一些项的子集。需要注意的是,终止索引标识的项不包括在切片内。切片提供了一个相关数组的动态窗口。
【4】代码:

切片的语法:
var 切片名 []类型 = 数组的一个片段引用
var slice []int = intarr[1:3]
package main
import "fmt"
func main(){
   
	//定义数组:
	var intarr [6]int = [6]int{
   3,6,9,1,4,7}
	//切片构建在数组之上:
	//定义一个切片名字为slice,[]为动态变化的数组长度不写,int;类型。intarr是原数组
	//[1:3]切片 - 切出的一段片段 - 索引:从1开始,到3结束(不包含3)- [1,3]
	//var slice []int = intarr[1:3]
    slice := intarr[1:3]
	//输出数组:
	fmt.Println("intarr:",intarr)
	//输出切片:
	fmt.Println("slice:",slice)
	//切片元素个数:
	fmt.Println("slice的元素个数:",len(slice))
	//获取切片的容量:容量可以动态变化
	fmt.Println("slice的容量:",cap(slice))
}

在这里插入图片描述

2.内存分析

切片有3个字段的数据结构:一个是指向底层数组的指针,一个是切片的长度,一个是切片的容量。

代码:

package main
import "fmt"
func main(){
   
	//定义数组:
	var intarr [6]int = [6]int{
   3,6,9,1,4,7}
	//切片构建在数组之上:
	//定义一个切片名字为slice,[]为动态变化的数组长度不写,int;类型。intarr是原数组
	//[1:3]切片 - 切出的一段片段 - 索引:从1开始,到3结束(不包含3)- [1,3]
	//var slice []int = intarr[1:3]
    slice := intarr[1:3]
	//输出数组:
	fmt.
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值