mirror of
https://gitee.com/XM-GO/PandaX.git
synced 2026-04-23 02:48:34 +08:00
减少重复代码: 提取SnakeString和CamelString中的相同逻辑
Signed-off-by: lixxxww <941403820@qq.com>
This commit is contained in:
@@ -46,7 +46,7 @@ func CamelString(s string) string {
|
|||||||
return string(data)
|
return string(data)
|
||||||
}
|
}
|
||||||
|
|
||||||
func FirstLowCamelString(s string) string {
|
func convertString(s string, firstLower bool) string {
|
||||||
data := make([]byte, 0, len(s))
|
data := make([]byte, 0, len(s))
|
||||||
flag, num := true, len(s)-1
|
flag, num := true, len(s)-1
|
||||||
for i := 0; i <= num; i++ {
|
for i := 0; i <= num; i++ {
|
||||||
@@ -62,12 +62,18 @@ func FirstLowCamelString(s string) string {
|
|||||||
}
|
}
|
||||||
data = append(data, d)
|
data = append(data, d)
|
||||||
}
|
}
|
||||||
if len(data) > 0 && data[0] >= 65 && data[0] <= 90 {
|
if firstLower && len(data) > 0 && data[0] >= 'A' && data[0] <= 'Z' {
|
||||||
data[0] = data[0] + 32
|
data[0] = data[0] + 32
|
||||||
}
|
}
|
||||||
return string(data)
|
return string(data)
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// FirstLowCamelString first low camel string, xx_yy to xxYy
|
||||||
|
func FirstLowCamelString(s string) string {
|
||||||
|
return convertString(s, true)
|
||||||
|
}
|
||||||
|
|
||||||
|
// StructToMap convert struct to map
|
||||||
func StructToMap(s interface{}) map[string]interface{} {
|
func StructToMap(s interface{}) map[string]interface{} {
|
||||||
result := make(map[string]interface{})
|
result := make(map[string]interface{})
|
||||||
|
|
||||||
@@ -83,6 +89,7 @@ func StructToMap(s interface{}) map[string]interface{} {
|
|||||||
return result
|
return result
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// MapToStruct convert map to struct
|
||||||
func MapToStruct(m map[string]interface{}, s interface{}) error {
|
func MapToStruct(m map[string]interface{}, s interface{}) error {
|
||||||
data, err := json.Marshal(m)
|
data, err := json.Marshal(m)
|
||||||
if err != nil {
|
if err != nil {
|
||||||
@@ -97,6 +104,7 @@ func MapToStruct(m map[string]interface{}, s interface{}) error {
|
|||||||
return nil
|
return nil
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// InterfaceToStruct convert interface to struct
|
||||||
func InterfaceToStruct(m interface{}, s interface{}) error {
|
func InterfaceToStruct(m interface{}, s interface{}) error {
|
||||||
data, err := json.Marshal(m)
|
data, err := json.Marshal(m)
|
||||||
if err != nil {
|
if err != nil {
|
||||||
@@ -111,6 +119,7 @@ func InterfaceToStruct(m interface{}, s interface{}) error {
|
|||||||
return nil
|
return nil
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// StringToStruct convert string to struct
|
||||||
func StringToStruct(m string, s interface{}) error {
|
func StringToStruct(m string, s interface{}) error {
|
||||||
err := json.Unmarshal([]byte(m), s)
|
err := json.Unmarshal([]byte(m), s)
|
||||||
if err != nil {
|
if err != nil {
|
||||||
@@ -119,6 +128,7 @@ func StringToStruct(m string, s interface{}) error {
|
|||||||
return nil
|
return nil
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// TimeToFormat convert time to formatted string
|
||||||
func TimeToFormat(val interface{}) string {
|
func TimeToFormat(val interface{}) string {
|
||||||
switch v := val.(type) {
|
switch v := val.(type) {
|
||||||
case int64:
|
case int64:
|
||||||
|
|||||||
Reference in New Issue
Block a user