Получение поля структуры в цикле
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()))