面试题答案
一键面试实现思路
- 使用
reflect.TypeOf
获取结构体的类型信息。 - 通过类型信息的
NumField
方法获取结构体字段数量。 - 利用循环和
Field
方法获取每个字段的详细信息,包括字段名、类型和标签。
示例代码
package main
import (
"fmt"
"reflect"
)
type Person struct {
Name string `json:"name"`
Age int `json:"age"`
}
func main() {
p := Person{"John", 30}
t := reflect.TypeOf(p)
for i := 0; i < t.NumField(); i++ {
field := t.Field(i)
fmt.Printf("Field Name: %s\n", field.Name)
fmt.Printf("Field Type: %v\n", field.Type)
fmt.Printf("Field Tag: %v\n", field.Tag)
fmt.Println()
}
}