17 lines
291 B
Go
17 lines
291 B
Go
package slices
|
|
|
|
func Reverse[T any](slice []T) []T {
|
|
s := make([]T, len(slice))
|
|
for i := range slice {
|
|
ri := len(slice) - 1 - i
|
|
s[ri] = slice[i]
|
|
}
|
|
return s
|
|
}
|
|
|
|
func ReverseInPlace[S ~[]T, T any](s S) {
|
|
for i, j := 0, len(s)-1; i < j; i, j = i+1, j-1 {
|
|
s[i], s[j] = s[j], s[i]
|
|
}
|
|
}
|