Como obter informações de variáveis ​​de estrutura usando o pacote reflet?

Usando o pacote de reflexão, você também pode encontrar o nome, o tipo e o valor das variáveis ​​de estrutura.

package main

import (
"fmt"
"reflect"

)
type
Book struct {
Id int
Title string
Price float32
Authors []string
}

func main
() {
book
:= Book{1, "foo", 1.5, []string{"alex"}}
e
:= reflect.Indirect(reflect.ValueOf(&book))

for i := 0; i < e.NumField(); i++ {
varName
:= e.Type().Field(i).Name
varType
:= e.Field(i).Type
varValue
:= e.Field(i).Interface()
fmt
.Printf("%v %v %vn", varName,varType,varValue)
}
}