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+
10-06
1514
![](https://csdnimg.cn/release/blogv2/dist/pc/img/readCountWhite.png)
06-04
“相关推荐”对你有帮助么?
-
非常没帮助
-
没帮助
-
一般
-
有帮助
-
非常有帮助
提交