1234567891011121314151617181920212223242526272829303132333435363738394041424344454647 |
- package connection
- func Reverse[T any](slice []T) []T {
- var reversed []T
- for i := len(slice) - 1; i >= 0; i-- {
- reversed = append(reversed, slice[i])
- }
- return reversed
- }
- func First[T any](slice []T, first *int) []T {
- if len(slice) == 0 || first == nil {
- return slice[:]
- }
- if *first > len(slice) {
- *first = len(slice)
- }
- return slice[:*first]
- }
- func Last[T any](slice []T, last *int) []T {
- if len(slice) < 1 {
- return nil
- }
- if last == nil {
- return slice[:]
- }
- if *last < 0 {
- *last = 0
- }
- var i int
- if *last >= len(slice) {
- i = 0
- } else if *last == 0 {
- return nil
- } else {
- i = len(slice) - *last
- }
- return slice[i:]
- }
|