为了账号安全,请及时绑定邮箱和手机立即绑定

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

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

Go
潇潇雨雨 2023-08-14 17:31:21
我想看看是否有一种简单的方法可以用另一个切片的所有值替换切片的一部分。例如:x := []int{1,2,0,0}y := []int{3,4}// goal is x == {1,2,3,4}x[2:] = y    // compile errorx[2:] = y[:] // compile error我知道我总是可以迭代 y,但是 Go 有很多很酷的功能,而且我对 Go 还很陌生。所以也许我的处理方式是错误的。
查看完整描述

2 回答

?
拉丁的传说

TA贡献1789条经验 获得超8个赞

您可以使用内置副本:

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]

}


查看完整回答
反对 回复 2023-08-14
?
呼唤远方

TA贡献1856条经验 获得超11个赞

中有一个Replace函数x/exp/slices

Replace 将元素 s[i:j] 替换为给定的 v,并返回修改后的切片。如果 s[i:j] 不是 s 的有效切片,则替换恐慌。

import (

    "fmt"

    "golang.org/x/exp/slices"

)


func main() {

    x := []int{1, 2, 0, 0}

    y := []int{3, 4}

    z := slices.Replace(x, 2, 4, y...)

    fmt.Println(z)

}

操场


查看完整回答
反对 回复 2023-08-14
  • 2 回答
  • 0 关注
  • 156 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信