slice: add Reverse function, deduplicate code a bit
This commit is contained in:
parent
100e97d772
commit
a54e3516d1
4 changed files with 21 additions and 16 deletions
|
@ -7,8 +7,17 @@ package slice
|
|||
// original.
|
||||
func CopyReverse(b []byte) []byte {
|
||||
dest := make([]byte, len(b))
|
||||
for i, j := 0, len(b)-1; i <= j; i, j = i+1, j-1 {
|
||||
dest[i], dest[j] = b[j], b[i]
|
||||
}
|
||||
reverse(dest, b)
|
||||
return dest
|
||||
}
|
||||
|
||||
// Reverse does in-place reversing of byte slice.
|
||||
func Reverse(b []byte) {
|
||||
reverse(b, b)
|
||||
}
|
||||
|
||||
func reverse(dst []byte, src []byte) {
|
||||
for i, j := 0, len(src)-1; i <= j; i, j = i+1, j-1 {
|
||||
dst[i], dst[j] = src[j], src[i]
|
||||
}
|
||||
}
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue