42 lines
892 B
Go
42 lines
892 B
Go
package querystring
|
|
|
|
import (
|
|
"fmt"
|
|
"strconv"
|
|
"strings"
|
|
)
|
|
|
|
func SplitIntArray(value string) ([]int64, error) {
|
|
items := strings.Split(value, ",")
|
|
result := make([]int64, len(items))
|
|
|
|
for i, item := range items {
|
|
val, err := strconv.ParseInt(item, 10, 64)
|
|
if err != nil || val < 1 {
|
|
return result, fmt.Errorf("invalid id %s", item)
|
|
}
|
|
result[i] = val
|
|
}
|
|
|
|
return result, nil
|
|
}
|
|
|
|
func ConvertStringToInt(input string) (int, error) {
|
|
// Try converting the string to float
|
|
floatValue, err := strconv.ParseFloat(input, 64)
|
|
if err == nil {
|
|
// Float conversion successful, return the integer part
|
|
return int(floatValue), nil
|
|
}
|
|
|
|
// Float conversion failed, try converting the string to integer
|
|
intValue, err := strconv.Atoi(input)
|
|
if err == nil {
|
|
// Integer conversion successful, return the integer value
|
|
return intValue, nil
|
|
}
|
|
|
|
// Conversion failed
|
|
return 0, err
|
|
}
|