如何将一个切片的一部分替换为另一个切片

问题描述 投票:0回答:1

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

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还是很陌生。因此,也许我会采用错误的方式。

arrays go slice
1个回答
1
投票

您可以使用内置的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]
}

从以上comment开始,您可以在此处了解有关切片的更多信息:

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

© www.soinside.com 2019 - 2024. All rights reserved.