1. 优点:append可以对nil的slice进行操作
2.基本用法
创建s时,cap(s) == 1,内存中数据[5] append(s, 7) 时,按Slice扩容机制,cap(s)翻倍 == 2,内存中数据[5,7] append(s, 9) 时,按Slice扩容机制,cap(s)再翻倍 == 4,内存中数据[5,7,9],但是实际内存块容量4 x := append(s, 11) 时,容量足够不需要扩容,内存中数据[5,7,9,11] y := append(s, 12) 时,容量足够不需要扩容,内存中数据[5,7,9,12] 3. 小坑
package main import ( "fmt" ) func main() { var s = make([]string, 10) s = append(s, "aaa") fmt.Printf("s[0]=[%s]\n", s[0]) for i, v := range s { fmt.Printf("s[%d]=[%s]\n", i, v) } } $ go build && ./main s[0]=[] s[0]=[] s[1]=[] s[2]=[] s[3]=[] s[4]=[] s[5]=[] s[6]=[] s[7]=[] s[8]=[] s[9]=[] s[10]=[aaa] 未完待续。。。
来源:51CTO
作者:wangfy_
链接:https://blog.csdn.net/chushoufengli/article/details/100855837