赞
踩
【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)) }
切片有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:
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。