18 lines
695 B
Go
18 lines
695 B
Go
|
|
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))
|
|||
|
|
}
|