go20/day02/slice/main.go

18 lines
695 B
Go
Raw Normal View History

package main
import "fmt"
func main() {
// 1. 声明切片, 切片不是一个值是一个boxed结构体, array unsafe.Pointer // 数组指针
// 底层数组的长度: 容量10, 当前有几个元素3
slice1 := make([]int, 3, 5)
fmt.Println(slice1, len(slice1), cap(slice1))
// 底层数组的长度: 容量10, 当前有几个元素3
slice1 = append(slice1, 4, 5)
fmt.Println(slice1, len(slice1), cap(slice1))
// 这里的容器, 不是硬性限制,是超过容量后,底层数组是自动扩容的(重要)
// 扩容: 一般是原来的2倍, 新申请一块更大的数组, 把老数据copy过去
slice1 = append(slice1, 6)
fmt.Println(slice1, len(slice1), cap(slice1))
}