mirror of
https://github.com/unti-io/go-utils.git
synced 2025-10-04 16:02:39 +08:00
v1.1.7
This commit is contained in:
@@ -74,6 +74,7 @@ func init() {
|
|||||||
Version.Go = VersionGo
|
Version.Go = VersionGo
|
||||||
Version.Compare = VersionCompare
|
Version.Compare = VersionCompare
|
||||||
Unity.Ids = UnityIds
|
Unity.Ids = UnityIds
|
||||||
|
Unity.Keys = UnityKeys
|
||||||
}
|
}
|
||||||
|
|
||||||
var Is struct {
|
var Is struct {
|
||||||
@@ -190,5 +191,6 @@ var Version struct {
|
|||||||
}
|
}
|
||||||
|
|
||||||
var Unity struct {
|
var Unity struct {
|
||||||
Ids func(param ...any) (result []any)
|
Ids func(param ...any) (result []any)
|
||||||
|
Keys func(param any, reg ...any) (result []any)
|
||||||
}
|
}
|
||||||
|
@@ -31,3 +31,32 @@ func UnityIds(param ...any) (ids []any) {
|
|||||||
|
|
||||||
return ArrayUnique(ArrayEmpty(ids))
|
return ArrayUnique(ArrayEmpty(ids))
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// UnityKeys 参数归一化
|
||||||
|
func UnityKeys(param any, reg ...any) (keys []any) {
|
||||||
|
|
||||||
|
// 正则表达式
|
||||||
|
var regex string
|
||||||
|
if len(reg) > 0 {
|
||||||
|
regex = cast.ToString(reg[0])
|
||||||
|
} else {
|
||||||
|
regex = `[^,]+`
|
||||||
|
}
|
||||||
|
|
||||||
|
if GetType(param) == "string" {
|
||||||
|
|
||||||
|
item := regexp.MustCompile(regex).FindAllString(cast.ToString(param), -1)
|
||||||
|
|
||||||
|
for _, val := range item {
|
||||||
|
keys = append(keys, val)
|
||||||
|
}
|
||||||
|
}
|
||||||
|
if GetType(param) == "slice" {
|
||||||
|
item := cast.ToStringSlice(param)
|
||||||
|
for _, val := range item {
|
||||||
|
keys = append(keys, val)
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
return ArrayUnique(ArrayEmpty(keys))
|
||||||
|
}
|
||||||
|
Reference in New Issue
Block a user