代码
https://github.com/fangkang7/goLearn
案例
package main import "fmt" /** 相当于长度可以扩张的数组 经过数组截取的片段就是切片 */ func main01() { // 定义一个十位的数组 var array = [10]int{0, 23, 14, 56, 89, 65, 32, 14, 10, 23} // 截取数组的前9位 slice := array[0:9] fmt.Printf("array的数据类型是%T\n", array) fmt.Printf("slice的数据类型是%T,值是%v\n", slice, slice) // 下标为0开始截取5位 slice = array[0:5] fmt.Printf("slice的数据类型是%T,值是%v\n", slice, slice) // 从0开始截取5位 slice = array[:5] fmt.Printf("slice的数据类型是%T,值是%v\n", slice, slice) // 从下标0开始截取全部 slice = array[0:] fmt.Printf("slice的数据类型是%T,值是%v\n", slice, slice) // 截取全部 slice = array[:] fmt.Printf("slice的数据类型是%T,值是%v\n", slice, slice) } func main() { main01() var slice []int = []int{} fmt.Printf("slice的数据类型是%T\n", slice) fmt.Printf("slice的长度是%d,值是%v\n", len(slice), slice) // 往切片里边添加元素 slice = append(slice, 0) fmt.Printf("slice的长度是%d,值是%v\n", len(slice), slice) slice = append(slice, 11, 22, 33) fmt.Printf("slice的长度是%d,值是%v\n", len(slice), slice) // 在来熟悉一下遍历数组 for i := 0; i < len(slice); i++ { fmt.Printf("slice的第%d个元素的值是%v\n", i, slice[i]) } for index, value := range slice { fmt.Printf("slice的第%d个元素的值是%v\n", index, value) } }
总结
把一个数组改变为切片只需要使用slice来截取即可 这里的使用方法跟PHP很类似,简单了解即可
给一个切片扩容 在go里使用append的方法,在PHP里没有切片的概念可以直接用数组来直接扩容
在go里数组是固定的不变的,除非使用截取来改变类型为切片,否则无法扩容