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