Golang数据类型 切片(slice)
Posted sss4
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Golang数据类型 切片(slice)相关的知识,希望对你有一定的参考价值。
前言
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 ", len(s1), cap(s1)) fmt.Printf("切片的长度:%d 切片的容量:%d ", len(s2), cap(s2)) fmt.Printf("切片的长度:%d 切片的容量:%d ", len(s3), cap(s3)) }
以上是关于Golang数据类型 切片(slice)的主要内容,如果未能解决你的问题,请参考以下文章