I'm writing a function to append 5-10 bytes (count is random) at the beginning of a byte array, and 5-10 random bytes at the end:
func padWithRandomBytes(b []byte) []byte {
startBytes := make([]byte, 10-rand.Intn(5))
endBytes := make([]byte, 10-rand.Intn(5))
newSlice := make([]byte, len(startBytes)+len(b)+len(endBytes))
copy(newSlice[:len(startBytes)], startBytes)
copy(newSlice[len(startBytes):len(startBytes)+len(b)], b)
copy(newSlice[len(startBytes)+len(b):], endBytes)
return newSlice
}
This feels pretty inefficient. Is there a more intuitive way to write this in Go?