package main import "fmt" func main() { // 1.声明一个整形切片 var numList []int fmt.Println(numList) fmt.Println(numList == nil) // 切片是引用数据类型 true // 2.声明一个空切片 var numListEmpty = []int{} fmt.Println(numListEmpty) // 3.make声明方式 // make方法中第一个参数是指针 切片元素对应的底层数组元素位置 // make方法中第二个参数是长度 切片中的元素个数 // make方法中第三个参数是容量 从切片的开始位置到底层数据的结尾位置 numListMake := make([]int, 3, 5) fmt.Println(len(numListMake)) // 获取切片的长度(判断切片是否为空) fmt.Println(cap(numListMake)) // 获取切片的容量 fmt.Println(numListMake) // 4.对数组元素进行切片 var arr = []string{"橙子都是橘子味的", "java", "Go", "Vue", "Redis"} // 从数组0的位置切片到第三个位置Go语言中切片返回元素不包含第三个位置的元素 // 如果[:] 不写参数默认是整个切片 arrList := arr[1:3] fmt.Println(arrList) // 5.追加切片元素 var arrAdd = []string{"橙子都是橘子味的"} // cap(arrAdd) = 1 // 向切片追加一个元素 arrAdd = append(arrAdd, "java") // cap(arrAdd) = 2 // 向切片追加两个元素 arrAdd = append(arrAdd, "Go", "Vue") // cap(arrAdd) = 4 // 向切片追加一个切片 需要... 解引用 (如果每次追加数据超过切片容量Go语言会新建一个数组 // 将数组值复制到新的数组并并两倍的方式扩容返回新的数组地址) arrAdd = append(arrAdd, []string{"Redis", "RabbitMq"}...) // cap(arrAdd) = 8 fmt.Println(arrAdd) // 6.二维切片 arrLists := [][]string{ {"1", "橙子都是橘子味的"}, {"2", "java"}, {"3", "Go"}, } fmt.Println(arrLists) }
最新评论