当前位置:   article > 正文

Golang基础-切片_golang定义切片

golang定义切片

切片

1.切片的引入

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

切片的语法:
var 切片名 []类型 = 数组的一个片段引用
var slice []int = intarr[1:3]
  • 1
  • 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.Println("intarr:",intarr)
	//输出切片:
	fmt.Println("slice:",slice)
	//切片元素个数:
	fmt.Println("slice的元素个数:",len(slice))
	//获取切片的容量:容量可以动态变化
	fmt.Println("slice的容量:",cap(slice))
}
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
  • 16
  • 17
  • 18
  • 19
  • 20
  • 21

在这里插入图片描述

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:
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/很楠不爱3/article/detail/206423
推荐阅读
相关标签
  

闽ICP备14008679号