demo.go(切片类型):
package main
import "fmt"
func main() {
// 定义切片 (数组长度固定,切片的长度可以不固定)
var slice = []int{1,2,3,4,10:5} // 10表示下标
slice[1] = 100
fmt.Println(slice) // [1 100 3 4 0 0 0 0 0 0 5]
fmt.Println(len(slice)) // 11 长度11
// append 切片可以动态添加数据 (数组的长度是固定的,不能动态添加数据)
slice = append(slice,666) // 切片的长度发生了改变
slice2 := append(slice,777,888) // 可以添加多个元素
fmt.Println(slice2) // [1 100 3 4 0 0 0 0 0 0 5 666 777 888]
// 定义切片 (第二种方式)
var slice3 []int // 默认长度是0
// slice3[0] = 11 // 会报错。 slice3的默认长度是0
// 可以通过append动态添加元素
slice3 = append(slice3, 1,2,3,4,5)
fmt.Println(slice3) // [1 2 3 4 5]
// 定义切片 (第三种方式) make定义切片并指定初始长度 make(切片类型,长度[,容量])
var slice4 = make([]int, 10, 20) // 长度10,容量20(提前开辟内存空间,append添加数据不超容量时,切片地址不会变)。 容量可以省略不写。
fmt.Println(slice4) // [0 0 0 0 0 0 0 0 0