聊城开发区建设局网站,pc端网游排行榜前十名,展览设计公司招聘,公司网站建设全Go语言基础
介绍
基础 切片 切片声明 切片初始化 切片基础操作 多维切片 介绍 本文介绍Go语言中切片(slice)(切片声明、切片初始化、切片基础操作、多维切片)等相关知识。基础
切片 切片(slice)是对数组的一个连续片段的引用,切片是一个引用类型。切片是长度可变的数组,…Go语言基础
介绍
基础 切片 切片声明 切片初始化 切片基础操作 多维切片 介绍
本文介绍Go语言中切片(slice)(切片声明、切片初始化、切片基础操作、多维切片)等相关知识。基础
切片
切片(slice)是对数组的一个连续片段的引用,切片是一个引用类型。切片是长度可变的数组,由三部分组成: 指针:指向的数组元素的地址长度:元素的数量容量:切片可容纳多少元素 切片声明
需要指定组成元素的类型,不需要指定存储元素的个数。声明后,默认初始化为 nil,意思是不存在此切片引用。package mainimport "fmt"func main() {// 声明一个切片var slice1 []intfmt.Printf("slice1 type: %T, value: %v\n", slice1, slice1)// 自动类型推导slice2 := []int{}fmt.Printf("slice2 type: %T, value: %v\n", slice2, slice2)
}输出结果 slice1 type: []int, value: [] slice2 type: []int, value: [] 切片初始化
切片初始化方式较多,具体如下package mainimport "fmt"func main() {// 字面量初始化var slice1 []int = []int{1, 2, 3, 4, 5}fmt.Println("slice1: ", slice1, ", cap: ", cap(slice1))// 字面量初始化空切片var slice2 []int = []int{}fmt.Println("slice2: ", slice2, ", cap: ", cap(slice2))// 从数组创建并初始化切片var arr [5]int = [5]int{1, 2, 3, 4, 5}slice3 := arr[0:3]fmt.Println("slice3: ", slice3, ", cap: ", cap(slice3))slice4 := arr[0:2:2]fmt.Println("slice4: ", slice4, ", cap: ", cap(slice4))// 从切片创建并初始化切片slice5 := slice4[:1]fmt.Println("slice5: ", slice5, ", cap: ", cap(slice5))slice6 := slice4[1:]fmt.Println("slice6: ", slice6, ", cap: ", cap(slice6))slice7 := slice4[:]fmt.Println("slice7: ", slice7, ", cap: ", cap(slice7))slice8 := slice4[0:0