博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
Go append函数:给切片添加元素/合并切片
阅读量:4188 次
发布时间:2019-05-26

本文共 1193 字,大约阅读时间需要 3 分钟。

目录


 

描述

append函数是Go的内置函数,它可以为切片动态的添加元素。append函数返回添加后的切片。

 

语法和参数

函数签名

func append(slice []Type, elems ...Type) []Type
参数名称 含义
slice 待添加元素的切片
elems 要添加的元素

append函数允许一次性添加多个值。

 

使用示例

给切片添加元素

package mainimport "fmt"func main() {	demo := make([]int, 0, 1)	demo = append(demo, 1)	fmt.Println("demo:", demo)    // outputs: demo: [1]}

给切片添加多个元素

package mainimport "fmt"func main() {	demo := make([]int, 0, 1)	demo = append(demo, 1, 3, 5)	fmt.Println("demo:", demo)    // outputs: demo: [1 3 5]}

合并其它切片

借助append函数,可以将一个切片合并到另一个切片中:

package mainimport "fmt"func main() {	s1 := []int{23, 26, 28}	s2 := []int{3, 6, 9}	s1 = append(s1, s2...)	fmt.Println(s1)	// output: [23 26 28 3 6 9]}

 

注意事项

append返回的新切片与原切片是否指向同一块内存地址

根据切片的性质,当使用append函数给切片添加元素后,切片的length未超过append前的cap,则切片不会扩容,因此append返回的切片与原切片指向同一个内存地址。反之,append返回扩容后的切片,与原切片的内存地址不同:

package mainimport "fmt"func main() {	source := make([]int, 0, 3)	fmt.Printf("source address: %p\n", source)	// output: source address: 0xc0000b6020	source = append(source, 1)	fmt.Printf("source address: %p\n", source)	// output: source address: 0xc0000b6020	source = append(source, 2, 3)	fmt.Printf("source address: %p\n", source)	// output: source address: 0xc0000ba000}

 

转载地址:http://kjsoi.baihongyu.com/

你可能感兴趣的文章
(二)Git--工作区和暂存区、管理修改与撤销
查看>>
(七)Git--自定义Git
查看>>
(五)Git--分支管理
查看>>
(四)Git--远程仓库
查看>>
(六) Git--标签管理
查看>>
java中继承,子类是否继承父类的构造函数
查看>>
什么是Spring Cloud ?
查看>>
Qt下D-Bus的具体运用(软键盘输入法的实现)
查看>>
嵌入式环境的搭建(用于Arm开发板)
查看>>
Qt中文件读取的几种方式
查看>>
pyqt实现界面化编程
查看>>
qt写DLL文件并调用和出现的问题分析
查看>>
工厂模式(Factory)-设计模式(一)
查看>>
建造者模式(Builder)-设计模式(三)
查看>>
Qt 怎么给QWidget添加滚动条
查看>>
双十一冲刺业绩,完不成杀运营祭天?程序员:你们也有今天
查看>>
搜狗输入法到底算不算恶意挟持百度搜索流量?五个测试告诉你答案
查看>>
百度成为美国领先的人工智能联盟的第一个中国成员
查看>>
程序员资讯:QR代码在公共交通中得到越来越多的采用
查看>>
当了将近十年的程序员,为什么从来没见过程序员带孩子
查看>>