我想看看是否有一种简单的方法可以将切片的一部分替换为另一个切片的所有值。例如:
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]
}
从以上comment开始,您可以在此处了解有关切片的更多信息:
我还发现此博客文章内容丰富:https://divan.dev/posts/avoid_gotchas/#arrays-and-slices