From a60ccdc6957ef90b4e109ec63eb0fcc8dbbe79ff Mon Sep 17 00:00:00 2001 From: xxj <346944475@qq.com> Date: Mon, 28 Dec 2020 16:13:39 +0800 Subject: [PATCH] fix HashMap is out of order fix HashMap is out of order --- data/view/cnf/def.go | 55 +++++++++++++++++++++------------------ data/view/model/common.go | 6 ++--- 2 files changed, 32 insertions(+), 29 deletions(-) diff --git a/data/view/cnf/def.go b/data/view/cnf/def.go index b44b478..8750e26 100644 --- a/data/view/cnf/def.go +++ b/data/view/cnf/def.go @@ -44,30 +44,33 @@ var TypeMysqlDicMp = map[string]string{ "integer": "int64", } -// TypeMysqlMatchMp Fuzzy Matching Types.模糊匹配类型 -var TypeMysqlMatchMp = map[string]string{ - `^(tinyint)[(]\d+[)] unsigned`: "uint8", - `^(smallint)[(]\d+[)] unsigned`: "uint16", - `^(int)[(]\d+[)] unsigned`: "uint32", - `^(bigint)[(]\d+[)] unsigned`: "uint64", - `^(tinyint)[(]\d+[)]`: "int8", - `^(smallint)[(]\d+[)]`: "int16", - `^(int)[(]\d+[)]`: "int", - `^(bigint)[(]\d+[)]`: "int64", - `^(char)[(]\d+[)]`: "string", - `^(enum)[(](.)+[)]`: "string", - `^(varchar)[(]\d+[)]`: "string", - `^(varbinary)[(]\d+[)]`: "[]byte", - `^(blob)[(]\d+[)]`: "[]byte", - `^(binary)[(]\d+[)]`: "[]byte", - `^(decimal)[(]\d+,\d+[)]`: "float64", - `^(mediumint)[(]\d+[)]`: "string", - `^(double)[(]\d+,\d+[)]`: "float64", - `^(double)[(]\d+,\d+[)] unsigned`: "float64", - `^(float)[(]\d+,\d+[)]`: "float64", - `^(float)[(]\d+,\d+[)] unsigned`: "float64", - `^(datetime)[(]\d+[)]`: "time.Time", - `^(bit)[(]\d+[)]`: "[]uint8", - `^(text)[(]\d+[)]`: "string", - `^(integer)[(]\d+[)]`: "int", +// TypeMysqlMatchList Fuzzy Matching Types.模糊匹配类型 +var TypeMysqlMatchList = []struct { + Key string + Value string +}{ + {`^(tinyint)[(]\d+[)] unsigned`, "uint8"}, + {`^(smallint)[(]\d+[)] unsigned`, "uint16"}, + {`^(int)[(]\d+[)] unsigned`, "uint32"}, + {`^(bigint)[(]\d+[)] unsigned`, "uint64"}, + {`^(float)[(]\d+,\d+[)] unsigned`, "float64"}, + {`^(double)[(]\d+,\d+[)] unsigned`, "float64"}, + {`^(tinyint)[(]\d+[)]`, "int8"}, + {`^(smallint)[(]\d+[)]`, "int16"}, + {`^(int)[(]\d+[)]`, "int"}, + {`^(bigint)[(]\d+[)]`, "int64"}, + {`^(char)[(]\d+[)]`, "string"}, + {`^(enum)[(](.)+[)]`, "string"}, + {`^(varchar)[(]\d+[)]`, "string"}, + {`^(varbinary)[(]\d+[)]`, "[]byte"}, + {`^(blob)[(]\d+[)]`, "[]byte"}, + {`^(binary)[(]\d+[)]`, "[]byte"}, + {`^(decimal)[(]\d+,\d+[)]`, "float64"}, + {`^(mediumint)[(]\d+[)]`, "string"}, + {`^(double)[(]\d+,\d+[)]`, "float64"}, + {`^(float)[(]\d+,\d+[)]`, "float64"}, + {`^(datetime)[(]\d+[)]`, "time.Time"}, + {`^(bit)[(]\d+[)]`, "[]uint8"}, + {`^(text)[(]\d+[)]`, "string"}, + {`^(integer)[(]\d+[)]`, "int"}, } diff --git a/data/view/model/common.go b/data/view/model/common.go index b536f6b..d2294ff 100644 --- a/data/view/model/common.go +++ b/data/view/model/common.go @@ -62,9 +62,9 @@ func getTypeName(name string, isNull bool) string { } // Fuzzy Regular Matching.模糊正则匹配 - for k, v := range cnf.TypeMysqlMatchMp { - if ok, _ := regexp.MatchString(k, name); ok { - return fixNullToPorint(v, isNull) + for _, l := range cnf.TypeMysqlMatchList { + if ok, _ := regexp.MatchString(l.Key, name); ok { + return fixNullToPorint(l.Value, isNull) } }