Получение поля структуры в цикле


import (
    "fmt"
    "reflect"
)

type Test struct {
    Name     string `field:"name"`
    Password string `field:"password"`
}

func main() {
    test := Test{
        Name:     "Bob",
        Password: "123456",
    }
    get(test)
}

func get(data interface{}) {
    r := reflect.TypeOf(data)
    for i := 0; i < r.NumField(); i++ {
        filed := r.Field(i)
        fmt.Print(fmt.Sprintf("%s=\n", filed.Tag.Get("field")))
    }
}

вывод

name=
password=

Каким образом в цикле (func get()) получить значения поля структуры ?


Ответы (1 шт):

Автор решения: Komdosh

Interface() возвращает значение

fmt.Print(fmt.Sprintf("%s=%v\n", filed.Tag.Get("field"), filed.Interface()))

→ Ссылка