Files
alfred-be/alfred/utils/string_utils.go
2026-03-08 16:14:42 +05:30

77 lines
1.4 KiB
Go

package utils
import (
"alfred/pkg/log"
"errors"
"go.uber.org/zap"
"strconv"
)
func GetStringValue(value interface{}) (string, error) {
if strVal, ok := value.(string); ok {
return strVal, nil
}
return EMPTY, errors.New("value is not a string")
}
func GetFloat64FromString(value string) (output float64) {
if value == EMPTY {
output = 0
} else {
output, _ = strconv.ParseFloat(value, 64)
}
return output
}
func GetInt64FromString(value string) (output int64) {
if value == EMPTY {
output = 0
} else {
output, _ = strconv.ParseInt(value, 10, 64)
}
return output
}
func ConvertStringListToInt64List(stringList []string) ([]int64, error) {
var int64List []int64
for _, str := range stringList {
i, _ := strconv.ParseInt(str, 10, 64)
int64List = append(int64List, i)
}
return int64List, nil
}
func GetIntFromString(value string) (output int) {
output = 0
if value == EMPTY {
return output
}
parsedValue, err := strconv.ParseFloat(value, 64)
if err != nil {
log.Error("Error while converting string to float64:", zap.Error(err))
return output
}
// Convert float64 to int
return int(parsedValue)
}
func CreateSlicesFromStringList(data []string, size int) [][]string {
var slices [][]string
for i := 0; i < len(data); i += size {
end := i + size
if end > len(data) {
end = len(data)
}
slice := data[i:end]
slices = append(slices, slice)
}
return slices
}