gpt4 book ai didi

arrays - 如何将 slice 的一部分换成另一个

转载 作者:行者123 更新时间:2023-12-01 21:19:14 25 4
gpt4 key购买 nike

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

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:

The copy built-in function copies elements from a source slice into a destination slice.


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://play.golang.org/p/TL6Bv4OGeqE

  • 从上面的 comment窃取到,您可以在这里在 slice 上学到更多:
  • https://golang.org/ref/spec#Appending_and_copying_slices
  • https://golang.org/doc/effective_go.html#slices
  • https://github.com/golang/go/wiki/SliceTricks

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

    关于arrays - 如何将 slice 的一部分换成另一个,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/60623191/

    25 4 0
    Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
    广告合作:1813099741@qq.com 6ren.com