golang 通过反射reflect ,获取struct的各个变量的信息

Golang · Fecmall · 于 5年前 发布 · 3991 次阅读

How to get struct variable information using reflect package?

Using reflect package you can also find the name and type of struct variables.

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 %v\n", varName,varType,varValue)
    }
}

结果:

C:\golang\codes>go run example19.go
Id int 0
Title string
Price float32 0
Authors []string []

C:\golang\codes>
共收到 0 条回复
没有找到数据。
添加回复 (需要登录)
需要 登录 后方可回复, 如果你还没有账号请点击这里 注册
Your Site Analytics