Go语言切片前或中间插入项与内置copy()函数
2017-07-22 00:20
323 查看
内置append()函数能够在切片末尾位置添加新的项,假设要在切片的前面或者中间某位置插入特定项,可以这样实现,看下代码:
package main import "fmt" func main() { s := []string{"M","N","O","P","Q","R"} x := InsertStringSliceCopy(s,[]string{"a","b","c"},0) y := InsertStringSliceCopy(s,[]string{"a","b","c"},3) fmt.Printf("%v\n%v\n",x,y) } func InsertStringSliceCopy(slice,insertion []string,index int)[]string { result := make([]string,len(slice) + len(insertion)) at := copy(result,slice[:index]) at += copy(result[at:],insertion) copy(result[at:],slice[index:]) fmt.Printf("%6T\n",at) return result }
运行结果:
自定义的InsertStringSliceCopy()函数可以实现在切片相应的位置插入项
此外InsertStringSliceCopy()函数中打印类变量at的类型,可知内置函数copy()在实现复制功能的时候会有一个int的返回值
相关文章推荐
- 初识go语言之 数组与切片(创建,遍历,删除,插入,复制)
- go语言笔记——append是内置的函数!!!new是一个函数!!!调试可以使用闭包,本质上是print调试,尼玛!
- go语言笔记——切片函数常见操作,增删改查和搜索、排序
- go语言函数传递问题(map、切片、接口、chan)
- go语言中将函数作为变量传递
- 《C语言及程序设计》实践参考——有序数组中插入数据(函数版)
- Go语言中的一些函数
- Go语言里的new函数用法分析
- Go语言学习笔记(五) [函数]
- 理解Go语言中的函数闭包
- GO 语言 切片和底层数组的关系
- Go语言的变量、函数、Socks5代理服务器
- Go 语言函数
- Go语言学习之函数(The way to go)
- Go语言学习六:指针与传递到函数的指针
- 随笔1:为什么copy函数需要定义中间指针get
- Go语言切片的用法和本质
- Go语言基础:函数
- 你猜对了么?一个函数考察Go 语言闭包、defer的用法