GoCollections/util/Utils.go

37 lines
573 B
Go

/*
* Copyright (c) 2022 tursom. All rights reserved.
* Use of this source code is governed by a GPL-3
* license that can be found in the LICENSE file.
*/
package util
type (
Stringer struct {
stringer func() string
}
)
func NewStringer(stringer func() string) Stringer {
return Stringer{
stringer: stringer,
}
}
func (s Stringer) String() string {
if s.stringer == nil {
return "nil"
}
return s.stringer()
}
func Reverse[T any](s []T) []T {
for i := 0; i < len(s)/2; i++ {
temp := s[i]
s[i] = s[len(s)-i-1]
s[len(s)-i-1] = temp
}
return s
}