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]
 | 
						|
	}
 | 
						|
}
 |