繁体   English   中英

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

[英]How can I replace part of a slice with another in 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 还很陌生。 所以也许我以错误的方式解决这个问题。

您可以使用内置副本

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

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 : //divan.dev/posts/avoid_gotchas/#arrays-and-slices

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM