Files
likedream/internal/utils/string.go
T
2025-10-15 14:05:00 +08:00

52 lines
959 B
Go

package utils
import (
"io"
"math/rand/v2"
"github.com/gogf/gf/v2/frame/g"
"github.com/gogf/gf/v2/os/gctx"
"github.com/google/uuid"
)
func GetFirstNotEmptyString(strs ...string) string {
for _, str := range strs {
if str != "" {
return str
}
}
return ""
}
func GenerateRandomString(length int) string {
const charset = "abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789"
var result []byte
for i := 0; i < length; i++ {
index := rand.IntN(len(charset))
result = append(result, charset[index])
}
return string(result)
}
func ReadString(reader io.Reader) string {
defer func() {
if closer, ok := reader.(io.Closer); ok {
e := closer.Close()
if e != nil {
g.Log().Errorf(gctx.GetInitCtx(), "关闭Reader失败: %v", e)
}
}
}()
bytes, err := io.ReadAll(reader)
OkOrPanic(err)
return string(bytes)
}
func UUID() string {
v6, err := uuid.NewV6()
if err != nil {
return ""
}
return v6.String()
}