Go语言切片前或中间插入项与内置copy()函数

来源:互联网 发布:淘宝网代理加盟 编辑:程序博客网 时间:2024/05/19 04:52

内置append()函数能够在切片末尾位置添加新的项,假设要在切片的前面或者中间某位置插入特定项,可以这样实现,看下代码:

package mainimport "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的返回值
原创粉丝点击