我想看看是否有一种简单的方法可以用另一个切片的所有值替换切片的一部分。例如:
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
Run Code Online (Sandbox Code Playgroud)
我知道我总是可以迭代 y,但是 Go 有很多很酷的功能,而且我对 Go 还很陌生。所以也许我的处理方式是错误的。
mik*_*iku 15
您可以使用内置副本:
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]
}
Run Code Online (Sandbox Code Playgroud)
从上面的评论中窃取,您可以在这里了解有关切片的更多信息:
我还发现这篇博文内容丰富:https://divan.dev/posts/avoid_gotchas/#arrays-and-slices