Files
go-utils/utils/unity.go
2023-05-27 14:32:01 +08:00

34 lines
659 B
Go

package utils
import (
"github.com/spf13/cast"
"regexp"
)
// UnityIds 参数归一化
func UnityIds(param ...any) (ids []any) {
fn := func(param any) (ids []any) {
if GetType(param) == "string" {
// 正则提取数字部分
item := regexp.MustCompile(`\d+`).FindAllString(cast.ToString(param), -1)
for _, val := range item {
ids = append(ids, cast.ToInt(val))
}
}
if GetType(param) == "slice" {
item := cast.ToStringSlice(param)
for _, val := range item {
ids = append(ids, cast.ToInt(val))
}
}
return ids
}
for _, val := range param {
ids = append(ids, fn(val)...)
}
return ArrayUnique(ArrayEmpty(ids))
}