为了账号安全,请及时绑定邮箱和手机立即绑定

如何在 go 中用另一个切片替换部分切片

如何在 go 中用另一个切片替换部分切片

Go
繁星点点滴滴 2022-05-23 14:52:11
我想看看是否有一种简单的方法可以用另一个切片的所有值替换切片的一部分。例如:x := []int{1,2,0,0}y := []int{3,4}// goal is x == {1,2,3,4}x[2:] = y    // compile errorx[2:] = y[:] // compile error我知道我总是可以遍历 y,但是 Go 有很多很酷的特性,而且我对 Go 还是很陌生。所以也许我会以错误的方式解决这个问题。
查看完整描述

1 回答

?
守着星空守着你

TA贡献1799条经验 获得超8个赞

您可以使用内置副本:


复制内置函数将元素从源切片复制到目标切片。


package main


import "fmt"


func main() {

    x := []int{1, 2, 0, 0}

    y := []int{3, 4}


    copy(x[2:], y)


    fmt.Println(x) // [1 2 3 4]

}

https://play.golang.org/p/TL6Bv4OGeqE

从上面的评论中窃取,您可以在此处了解有关切片的更多信息:


https://golang.org/ref/spec#Appending_and_copying_slices

https://golang.org/doc/effective_go.html#slices

https://github.com/golang/go/wiki/SliceTricks

我还发现这篇博文内容丰富:https ://divan.dev/posts/avoid_gotchas/#arrays-and-slices


查看完整回答
反对 回复 2022-05-23
  • 1 回答
  • 0 关注
  • 155 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信