亚洲在线久爱草,狠狠天天香蕉网,天天搞日日干久草,伊人亚洲日本欧美

為了賬號安全,請及時綁定郵箱和手機立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

如何在 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 關注
  • 239 瀏覽
慕課專欄
更多

添加回答

舉報

0/150
提交
取消
微信客服

購課補貼
聯系客服咨詢優惠詳情

幫助反饋 APP下載

慕課網APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網微信公眾號