type Person struct { Id int `json:"id"` GivenName string `json:"given_name"` FamilyName string `json:"family_name"` Email string `json:"email"` } func main() { person := Person{ Id: 1, GivenName: "Sau Sheong", FamilyName: "Chang", Email: "sausheong@email.com", } fmt.Printf("%T\n", person) t := reflect.TypeOf(person) // Only the struct type has the NumField() method. // If you use it on other types, you'll get panic: reflect: NumField of non-struct type string. fmt.Println(t, t.NumField()) fmt.Println(reflect.ValueOf(person).Kind()) fmt.Println("-----------------------") str := "abc" fmt.Printf("%T\n", str) fmt.Println(reflect.TypeOf(str)) fmt.Println(reflect.ValueOf(str).Kind()) fmt.Println("-----------------------") s := []int{1, 2, 3} fmt.Printf("%T\n", s) fmt.Println(reflect.TypeOf(s)) fmt.Println(reflect.ValueOf(s).Kind()) fmt.Println("-----------------------") d := map[int]string{1: "a", 2: "b"} fmt.Printf("%T\n", d) fmt.Println(reflect.TypeOf(d)) fmt.Println(reflect.ValueOf(d).Kind()) }
zzh@ZZHPC:/zdata/Github/ztest$ go run main.go main.Person main.Person 4 struct ----------------------- string string string ----------------------- []int []int slice ----------------------- map[int]string map[int]string map
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 震惊!C++程序真的从main开始吗?99%的程序员都答错了
· 【硬核科普】Trae如何「偷看」你的代码?零基础破解AI编程运行原理
· 单元测试从入门到精通
· 上周热点回顾(3.3-3.9)
· winform 绘制太阳,地球,月球 运作规律