import (
"fmt"
"reflect"
)
var count int
func GetStructFieldCount(data interface{}) int {
count = 0
refData := reflect.TypeOf(data)
rangeStruct(refData)
return count
}
func rangeStruct(refType reflect.Type) {
if refType.Kind() != reflect.Struct {
count++
return
}
for i := 0; i < refType.NumField(); i++ {
fmt.Println(refType.Field(i).Type)
if refType.Field(i).Type.Kind() == reflect.Struct {
rangeStruct(refType.Field(i).Type)
continue
}
count+
获取嵌套结构体字段总数
最新推荐文章于 2022-12-29 17:30:01 发布