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
How to use for and foreach loop?
Converting Int data type to Float in Go
Dereferencing a pointer from another package
Copy an array by value and reference into another array
How to declare and access pointer variable?
Split URL and Get Parameters from URL
How to add and update elements in Map?
Constructors in Golang
Split a string at uppercase letters using regular expression in Golang
Regular expression to extract text between square brackets