1. append函数是用来在slice末尾追加一个或者多个元素。
2. 当追加元素时,发现slice的**len>cap**时,会重新开辟一个**2*cap**的内存空间去存储追加过元素的slice。
3. 如果追加元素后slice的**len<=cap**,则append返回的新生成的slice的内存地址**依旧**是传入的slice参数的内存地址。
```go
testSlice := make([]int, 0)
testSlice = append(testSlice, 0)
fmt.Printf("len: %d, cap: %d, data:%+v \n", len(testSlice), cap(testSlice), testSlice)
//len: 1, cap: 1, data:[0]
fmt.Printf("testSlice地址:%p \n", &testSlice[0])
//testSlice地址:0xc04203c1d0
testSlice = append(testSlice, 1)
fmt.Printf("len: %d, cap: %d, data:%+v \n", len(testSlice), cap(testSlice), testSlice)
//len: 2, cap: 2, data:[0 1]
//因为cap长度不够,所以重新申请一个2*cap长度的内存空间,将内容拷贝到2倍cap的内存中
fmt.Printf("testSlice地址:%p \n", &testSlice[0])
//testSlice地址: