前言
Go中的数组数据类型的长度在声明的时候就已经固定了,切片是基于数组实现的 可变长度的容器。
切片的定义和初始化
切片类型和数组类型一样,想要使用,就必须要定义和初始化,不同之处已经提到,切片不需要指定切片的长度。
1.自定义切片
package main import ( "fmt" ) func main() { //切片的定义 var s1 []int //存放元素不限定,仅限定数据类型 var s2 []string fmt.Println(s1 == nil) //在初始化之前切片的值=nil fmt.Println(s2 == nil) //切片的初始化 s1 = []int{1, 2, 3} s2 = []string{"刘德华", "郭富城", "黎明", "梁朝伟"} //切片的长度和容量 fmt.Printf("长度:%d 容量:%d", len(s1), cap(s1)) }
2.由数组得到切片
package main import ( "fmt" ) func main() { a1 := [...]int{1, 2, 3, 4, 5, 6, 69} s1 := a1[0:2] s2 := a1[:4] s3 := a1[2:] s4 := a1[:] fmt.Println(s1, s2, s3, s4) //切片的容量:是指底层数组的从切边的第1个元素-----》最后1个元素的数量 fmt.Printf("切片的长度:%d 切片的容量:%d\n", len(s1), cap(s1)) fmt.Printf("切片的长度:%d 切片的容量:%d\n", len(s2), cap(s2)) fmt.Printf("切片的长度:%d 切片的容量:%d\n", len(s3), cap(s3)) }
原文地址:https://www.cnblogs.com/sss4/p/12557081.html
时间: 2024-11-04 07:23:09