github.com/tursom/GoCollections@v0.3.10/util/Utils.go (about) 1 /* 2 * Copyright (c) 2022 tursom. All rights reserved. 3 * Use of this source code is governed by a GPL-3 4 * license that can be found in the LICENSE file. 5 */ 6 7 package util 8 9 type ( 10 Stringer struct { 11 stringer func() string 12 } 13 ) 14 15 func NewStringer(stringer func() string) Stringer { 16 return Stringer{ 17 stringer: stringer, 18 } 19 } 20 21 func (s Stringer) String() string { 22 if s.stringer == nil { 23 return "nil" 24 } 25 return s.stringer() 26 } 27 28 func Reverse[T any](s []T) []T { 29 for i := 0; i < len(s)/2; i++ { 30 temp := s[i] 31 s[i] = s[len(s)-i-1] 32 s[len(s)-i-1] = temp 33 } 34 35 return s 36 }