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?