GoCollections/util/Utils.go

37 lines
573 B
Go
Raw Normal View History

2022-11-25 18:19:33 +08:00
/*
* 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.
*/
2022-03-23 10:15:18 +08:00
package util
2022-07-11 17:36:48 +08:00
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()
}
2023-04-26 17:15:33 +08:00
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
}