Golang append... 与 append 的区别
我们知道golang语言对切片、map 数据类型对追加有两种方式
一种是arr1 = append(arr1,v),一种是arr1= append(arr1,arr2...) 来看看这段代码
package main
type people struct {
Age int
Name string
}
func main() {
p1 := &people{
Age: 29,
Name: "aaa",
}
p2 := &people{
Age: 26,
Name:"bbb",
}
p3 := &people{
Age: 39,
Name: "ccc",
}
par1 := make([]people,1)
par1[0] = *p1
par2 := make([]people,2)
par2[0] = *p2
par2[1] = *p3
for _,v := range par2{
par1 = append(par1,v)
}
par1 = append(par1,par2...)
}
这两种写法有啥区别?那种方法好?
区别就是第一种写法,追加的时候,切片1需要不断(多次)申请内存,甚至是扩容
第二种写法只需要扩容一次,明显第二种无论是方便性,还是效率都要高于第一种
第二种写法是不错的写法,我是在看一些优秀的开源框架中学习到的,记录下来,Mark!
© 2020-2030 58jkw.com 版权所有 备案号:备案号:粤ICP备14046384号-1
友情连接:好玩小游戏 | 双人小游戏