我有以下用于实现接合的代码(即,给定一个字节切片已满,另一个字节切片部分,以及一个表示我想用部分覆盖的完整位置的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{})
}
基本上,我的方法执行3个字节片的连接:不完整的第一部分不被部分,全部部分覆盖,然后再覆盖完整的其余部分。有没有更好/更惯用的方式来做到这一点?我无法在标准库中找到实现此目的的方法。
慕森卡
大话西游666
芜湖不芜
相关分类