refactor: interface{} -> any

feat: 新增外链菜单
This commit is contained in:
meilin.huang
2023-06-01 12:31:32 +08:00
parent 9900b236ef
commit 17d96acceb
106 changed files with 316 additions and 312 deletions

View File

@@ -6,8 +6,8 @@ import (
// 数组比较
// 依次返回,新增值,删除值,以及不变值
func ArrayCompare(newArr []interface{}, oldArr []interface{}, compareFun func(interface{}, interface{}) bool) ([]interface{}, []interface{}, []interface{}) {
var unmodifierValue []interface{}
func ArrayCompare(newArr []any, oldArr []any, compareFun func(any, any) bool) ([]any, []any, []any) {
var unmodifierValue []any
ni, oi := 0, 0
for {
if ni >= len(newArr) {

View File

@@ -6,9 +6,9 @@ import (
)
func TestArrayCompare(t *testing.T) {
newArr := []interface{}{1, 2, 3, 5}
oldArr := []interface{}{3, 6}
add, del, unmodifier := ArrayCompare(newArr, oldArr, func(i1, i2 interface{}) bool {
newArr := []any{1, 2, 3, 5}
oldArr := []any{3, 6}
add, del, unmodifier := ArrayCompare(newArr, oldArr, func(i1, i2 any) bool {
return i1.(int) == i2.(int)
})
fmt.Println(add...)

View File

@@ -5,8 +5,8 @@ import (
"mayfly-go/pkg/global"
)
func Json2Map(jsonStr string) map[string]interface{} {
var res map[string]interface{}
func Json2Map(jsonStr string) map[string]any {
var res map[string]any
if jsonStr == "" {
return res
}

View File

@@ -5,11 +5,11 @@ import (
"strconv"
)
func GetString4Map(m map[string]interface{}, key string) string {
func GetString4Map(m map[string]any, key string) string {
return m[key].(string)
}
func GetInt4Map(m map[string]interface{}, key string) int {
func GetInt4Map(m map[string]any, key string) int {
i := m[key]
iKind := reflect.TypeOf(i).Kind()
if iKind == reflect.Int {
@@ -24,21 +24,21 @@ func GetInt4Map(m map[string]interface{}, key string) int {
// map构造器
type mapBuilder struct {
m map[string]interface{}
m map[string]any
}
func MapBuilder(key string, value interface{}) *mapBuilder {
func MapBuilder(key string, value any) *mapBuilder {
mb := new(mapBuilder)
mb.m = make(map[string]interface{}, 4)
mb.m = make(map[string]any, 4)
mb.m[key] = value
return mb
}
func (mb *mapBuilder) Put(key string, value interface{}) *mapBuilder {
func (mb *mapBuilder) Put(key string, value any) *mapBuilder {
mb.m[key] = value
return mb
}
func (mb *mapBuilder) ToMap() map[string]interface{} {
func (mb *mapBuilder) ToMap() map[string]any {
return mb.m
}

View File

@@ -82,7 +82,7 @@ func UnicodeIndex(str, substr string) int {
}
// 字符串模板解析
func TemplateResolve(temp string, data interface{}) string {
func TemplateResolve(temp string, data any) string {
t, _ := template.New("string-temp").Parse(temp)
var tmplBytes bytes.Buffer
@@ -93,7 +93,7 @@ func TemplateResolve(temp string, data interface{}) string {
return tmplBytes.String()
}
func ReverStrTemplate(temp, str string, res map[string]interface{}) {
func ReverStrTemplate(temp, str string, res map[string]any) {
index := UnicodeIndex(temp, "{")
ei := UnicodeIndex(temp, "}") + 1
next := StrTrim(temp[ei:])
@@ -118,7 +118,7 @@ func ReverStrTemplate(temp, str string, res map[string]interface{}) {
}
}
func ToString(value interface{}) string {
func ToString(value any) string {
// interface 转 string
var key string
if value == nil {

View File

@@ -11,7 +11,7 @@ import (
)
// Copy copy things引用至copier
func Copy(toValue interface{}, fromValue interface{}) (err error) {
func Copy(toValue any, fromValue any) (err error) {
var (
isSlice bool
amount = 1
@@ -133,7 +133,7 @@ func Copy(toValue interface{}, fromValue interface{}) (err error) {
}
// 对结构体的每个字段以及字段值执行doWith回调函数, 包括匿名属性的字段
func DoWithFields(str interface{}, doWith func(fType reflect.StructField, fValue reflect.Value) error) error {
func DoWithFields(str any, doWith func(fType reflect.StructField, fValue reflect.Value) error) error {
t := IndirectType(reflect.TypeOf(str))
if t.Kind() != reflect.Struct {
return errors.New("非结构体")
@@ -217,7 +217,7 @@ func set(to, from reflect.Value) bool {
return true
}
func Map2Struct(m map[string]interface{}, s interface{}) error {
func Map2Struct(m map[string]any, s any) error {
toValue := Indirect(reflect.ValueOf(s))
if !toValue.CanAddr() {
return errors.New("to value is unaddressable")
@@ -275,7 +275,7 @@ func Map2Struct(m map[string]interface{}, s interface{}) error {
return nil
}
func Maps2Structs(maps []map[string]interface{}, structs interface{}) error {
func Maps2Structs(maps []map[string]any, structs any) error {
structsV := reflect.Indirect(reflect.ValueOf(structs))
valType := structsV.Type()
valElemType := valType.Elem()
@@ -314,8 +314,8 @@ func getFiledValueByPath(path string, value reflect.Value) reflect.Value {
return value
}
func getInnerStructMaps(m map[string]interface{}) map[string]map[string]interface{} {
key2map := make(map[string]map[string]interface{})
func getInnerStructMaps(m map[string]any) map[string]map[string]any {
key2map := make(map[string]map[string]any)
for k, v := range m {
if !strings.Contains(k, ".") {
continue
@@ -324,7 +324,7 @@ func getInnerStructMaps(m map[string]interface{}) map[string]map[string]interfac
prefix := k[0:lastIndex]
m2 := key2map[prefix]
if m2 == nil {
key2map[prefix] = map[string]interface{}{k[lastIndex+1:]: v}
key2map[prefix] = map[string]any{k[lastIndex+1:]: v}
} else {
m2[k[lastIndex+1:]] = v
}
@@ -335,7 +335,7 @@ func getInnerStructMaps(m map[string]interface{}) map[string]map[string]interfac
// decode等方法摘抄自mapstructure库
func decode(name string, input interface{}, outVal reflect.Value) error {
func decode(name string, input any, outVal reflect.Value) error {
var inputVal reflect.Value
if input != nil {
inputVal = reflect.ValueOf(input)
@@ -374,7 +374,7 @@ func decode(name string, input interface{}, outVal reflect.Value) error {
return err
}
func decodeInt(name string, data interface{}, val reflect.Value) error {
func decodeInt(name string, data any, val reflect.Value) error {
dataVal := reflect.Indirect(reflect.ValueOf(data))
dataKind := getKind(dataVal)
dataType := dataVal.Type()
@@ -416,7 +416,7 @@ func decodeInt(name string, data interface{}, val reflect.Value) error {
return nil
}
func decodeUint(name string, data interface{}, val reflect.Value) error {
func decodeUint(name string, data any, val reflect.Value) error {
dataVal := reflect.Indirect(reflect.ValueOf(data))
dataKind := getKind(dataVal)
dataType := dataVal.Type()
@@ -472,7 +472,7 @@ func decodeUint(name string, data interface{}, val reflect.Value) error {
return nil
}
func decodeFloat(name string, data interface{}, val reflect.Value) error {
func decodeFloat(name string, data any, val reflect.Value) error {
dataVal := reflect.Indirect(reflect.ValueOf(data))
dataKind := getKind(dataVal)
dataType := dataVal.Type()
@@ -514,7 +514,7 @@ func decodeFloat(name string, data interface{}, val reflect.Value) error {
return nil
}
func decodeString(name string, data interface{}, val reflect.Value) error {
func decodeString(name string, data any, val reflect.Value) error {
dataVal := reflect.Indirect(reflect.ValueOf(data))
dataKind := getKind(dataVal)
@@ -566,7 +566,7 @@ func decodeString(name string, data interface{}, val reflect.Value) error {
return nil
}
func decodePtr(name string, data interface{}, val reflect.Value) (bool, error) {
func decodePtr(name string, data any, val reflect.Value) (bool, error) {
// If the input data is nil, then we want to just set the output
// pointer to be nil as well.
isNil := data == nil

View File

@@ -55,7 +55,7 @@ func TestGetFieldNames(t *testing.T) {
}
func TestMaps2Structs(t *testing.T) {
mapInstance := make(map[string]interface{})
mapInstance := make(map[string]any)
mapInstance["Username"] = "liang637210"
mapInstance["Id"] = 28
mapInstance["CreateTime"] = time.Now()
@@ -66,7 +66,7 @@ func TestMaps2Structs(t *testing.T) {
mapInstance["Inner.Dest.Username"] = "inner dest uername"
mapInstance["Inner.Dest.Inner.Desc"] = "inner dest inner desc"
mapInstance2 := make(map[string]interface{})
mapInstance2 := make(map[string]any)
mapInstance2["Username"] = "liang6372102"
mapInstance2["Id"] = 282
mapInstance2["CreateTime"] = time.Now()
@@ -77,7 +77,7 @@ func TestMaps2Structs(t *testing.T) {
mapInstance2["Inner.Dest.Username"] = "inner dest uername2"
mapInstance2["Inner.Dest.Inner.Desc"] = "inner dest inner desc2"
maps := make([]map[string]interface{}, 2)
maps := make([]map[string]any, 2)
maps[0] = mapInstance
maps[1] = mapInstance2
res := new([]Src)
@@ -88,7 +88,7 @@ func TestMaps2Structs(t *testing.T) {
}
func TestMap2Struct(t *testing.T) {
mapInstance := make(map[string]interface{})
mapInstance := make(map[string]any)
mapInstance["Username"] = "liang637210"
mapInstance["Id"] = 12
mapInstance["CreateTime"] = time.Now()
@@ -99,7 +99,7 @@ func TestMap2Struct(t *testing.T) {
mapInstance["Inner.Dest.Username"] = "inner dest uername"
mapInstance["Inner.Dest.Inner.Desc"] = "inner dest inner desc"
//innerMap := make(map[string]interface{})
//innerMap := make(map[string]any)
//innerMap["Name"] = "Innername"
//a := new(Src)
@@ -149,8 +149,8 @@ func TestMap2Struct(t *testing.T) {
fmt.Printf("map2struct后得到的 struct 内容为:%v", s)
}
func getPrefixKeyMap(m map[string]interface{}) map[string]map[string]interface{} {
key2map := make(map[string]map[string]interface{})
func getPrefixKeyMap(m map[string]any) map[string]map[string]any {
key2map := make(map[string]map[string]any)
for k, v := range m {
if !strings.Contains(k, ".") {
continue
@@ -159,7 +159,7 @@ func getPrefixKeyMap(m map[string]interface{}) map[string]map[string]interface{}
prefix := k[0:lastIndex]
m2 := key2map[prefix]
if m2 == nil {
key2map[prefix] = map[string]interface{}{k[lastIndex+1:]: v}
key2map[prefix] = map[string]any{k[lastIndex+1:]: v}
} else {
m2[k[lastIndex+1:]] = v
}

View File

@@ -5,7 +5,7 @@ import (
"text/template"
)
func parse(t *template.Template, vars interface{}) string {
func parse(t *template.Template, vars any) string {
var tmplBytes bytes.Buffer
err := t.Execute(&tmplBytes, vars)
@@ -18,7 +18,7 @@ func parse(t *template.Template, vars interface{}) string {
// 模板字符串解析
// @param str 模板字符串
// @param vars 参数变量
func TemplateParse(str string, vars interface{}) string {
func TemplateParse(str string, vars any) string {
tmpl, err := template.New("tmpl").Parse(str)
if err != nil {

View File

@@ -9,7 +9,7 @@ type INode interface {
// IsRoot 判断当前节点是否是顶层根节点
IsRoot() bool
SetChildren(childern interface{})
SetChildren(childern any)
}
type INodes []INode

View File

@@ -8,7 +8,7 @@ import (
)
// 从指定路径加载yaml文件
func LoadYml(path string, out interface{}) error {
func LoadYml(path string, out any) error {
yamlFileBytes, readErr := os.ReadFile(path)
if readErr != nil {
return readErr
@@ -21,7 +21,7 @@ func LoadYml(path string, out interface{}) error {
return nil
}
func LoadYmlByString(yamlStr string, out interface{}) error {
func LoadYmlByString(yamlStr string, out any) error {
// yaml解析
return yaml.Unmarshal([]byte(yamlStr), out)
}