我有用於實現拼接下面的代碼(即,給定一個字節切片滿,另一個字節切片部分,以及表示在充滿了我想和部分覆蓋該位置的int POS):Go中的地道切片拼接?
package main
import (
"fmt"
"bytes"
)
func main() {
full := []byte{0,0,0,0,0,0,0}
part := []byte{1,1,1}
newFull1 := splice(full, part, 2)
fmt.Println(newFull1)
// [0 0 1 1 1 0 0]
newFull2 := splice(full, part, 3)
fmt.Println(newFull2)
// [0 0 0 1 1 1 0]
}
func splice(full []byte, part []byte, pos int) []byte {
return bytes.Join([][]byte{full[:pos], part, full[len(full[:pos])+len(part):]}, []byte{})
}
基本上,我的方法做了3字節切片的連接:完整的第一部分不會被部分,全部部分,然後剩餘部分完全覆蓋。有沒有更好的/更習慣性的做法?我無法找到在標準庫中實現此功能的方法。
看起來不錯。我認爲你不會找到一個更簡潔的方法來完成這個任務。儘管你可能想要添加錯誤檢查。 pos可能會超出界限。 – Daniel