我有以下用于实现拼接的代码(即,给定一个字节片满,另一个字节片部分,以及一个int pos表示我想用部分覆盖的完整位置):
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{})
}
Run Code Online (Sandbox Code Playgroud)
基本上,我的方法执行3个字节切片的连接:完全的第一部分,不会被部分覆盖,全部部分,然后是完整的剩余部分.这样做有更好/更惯用的方法吗?我无法在标准库中找到实现此方法的方法.
go ×1