首页 > 文章列表 > golang如何通过反射获得结构体信息?

golang如何通过反射获得结构体信息?

golang
489 2023-03-08

问题内容

golang如何通过反射获得结构体信息?

正确答案

结构体

package main

import (
	"fmt"
	"reflect"
	
)
type Book struct {
	Id    int	
	Title string
	Price float32
	Authors []string 	
}
	
func main() {
    book := Book{}
    e := reflect.ValueOf(&book).Elem()
	
    for i := 0; i < e.NumField(); i++ {
		varName := e.Type().Field(i).Name
		varType := e.Type().Field(i).Type
		varValue := e.Field(i).Interface()
		fmt.Printf("%v %v %vn", varName,varType,varValue)
    }
}

运行结果

Id int 0
Title string
Price float32 0
Authors []string []