Files
Go-tool/MainTest.go
T

55 lines
1.2 KiB
Go
Raw Normal View History

/*
* @Author : huangzj
* @Time : 2020/4/24 14:51
* @Description
*/
package main
import (
2020-04-24 15:37:17 +08:00
"Go-Tool/util"
"fmt"
"reflect"
)
func main() {
testReflect()
}
func testReflect() {
entity := Entity{
Num: 1,
S: "1223",
T: make(map[string]string),
}
structMap := util.GetStructFieldTypeMap(entity)
fmt.Println("根据结构体获取Map结构")
for key, val := range structMap {
fmt.Println(fmt.Sprintf("结构体属性,key: %v ,value: %v ", key, val))
}
strMap := util.GetPtrFieldTypeMap(&entity)
fmt.Println("根据结构体的指针对象获取Map结构")
for key, val := range strMap {
fmt.Println(fmt.Sprintf("结构体属性,key: %v ,value: %v ", key, val))
}
ptrList := util.GetPtrTypeFieldNameList(reflect.TypeOf(&entity))
fmt.Println("根据结构体指针类型获取对应的属性名")
for _, val := range ptrList {
fmt.Println(fmt.Sprintf("字段名:%s ", val))
}
structList := util.GetStructTypeFieldNameList(reflect.TypeOf(entity))
fmt.Println("根据结构体类型获取对应所有字段名称")
for _, val := range structList {
fmt.Println(fmt.Sprintf("字段名:%s ", val))
}
}
type Entity struct {
Num int
S string
T map[string]string
}