Ответ 1
Вам не нужно передавать всю структуру, но передать значение одного из полей недостаточно. В вашем примере user.name
- это всего лишь string
- пакет отражения не будет иметь никакого отношения к тому, чтобы вернуться к исходной структуре.
Вместо этого вам нужно пройти вокруг reflect.StructField
для данного поля:
field, ok := reflect.TypeOf(user).Elem().FieldByName("name")
…
tag = string(field.Tag)
См. Http://play.golang.org/p/G6wxUVVbOw
(обратите внимание, мы используем Elem
выше, потому что user
является указателем на структуру).