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

我想看看是否有一种简单的方法可以用另一个切片的所有值替换切片的一部分。例如:


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

y := []int{3,4}


// goal is x == {1,2,3,4}


x[2:] = y    // compile error

x[2:] = y[:] // compile error

我知道我总是可以遍历 y,但是 Go 有很多很酷的特性,而且我对 Go 还是很陌生。所以也许我会以错误的方式解决这个问题。


繁星点点滴滴
浏览 156回答 1
1回答

守着星空守着你

您可以使用内置副本:复制内置函数将元素从源切片复制到目标切片。package mainimport "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_sliceshttps://golang.org/doc/effective_go.html#sliceshttps://github.com/golang/go/wiki/SliceTricks我还发现这篇博文内容丰富:https ://divan.dev/posts/avoid_gotchas/#arrays-and-slices
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

Go