How to get struct variable information using reflect package?


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

Example

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)
    }
}

Output

Id int 0
Title string
Price float32 0
Authors []string []
Most Helpful This Week