golang append

匿名 (未验证) 提交于 2019-12-03 00:06:01

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]

未完待续。。。

标签
易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!