package main | |
import ( | |
"fmt" | |
"reflect" | |
) | |
type Foo struct { | |
FirstName string `tag_name:"tag 1"` | |
LastName string `tag_name:"tag 2"` | |
Age int `tag_name:"tag 3"` | |
} | |
func (f *Foo) reflect() { | |
val := reflect.ValueOf(f).Elem() | |
for i := 0; i < val.NumField(); i++ { | |
valueField := val.Field(i) | |
typeField := val.Type().Field(i) | |
tag := typeField.Tag | |
fmt.Printf("Field Name: %s,\t Field Value: %v,\t Tag Value: %s\n", typeField.Name, valueField.Interface(), tag.Get("tag_name")) | |
} | |
} | |
func main() { | |
f := &Foo{ | |
FirstName: "Drew", | |
LastName: "Olson", | |
Age: 30, | |
} | |
f.reflect() | |
} |
This comment has been minimized.
This comment has been minimized.
Thanks! |
This comment has been minimized.
This comment has been minimized.
Thank you very much! |
This comment has been minimized.
This comment has been minimized.
For ref - http://play.golang.org/p/P9zvVJnMhR |
This comment has been minimized.
This comment has been minimized.
Thanks very much for this! Very helpful. |
This comment has been minimized.
This comment has been minimized.
Nice snippet, thanks! |
This comment has been minimized.
This comment has been minimized.
Thank you very much! Just needed it. |
This comment has been minimized.
This comment has been minimized.
Does the reflection logic change if foo is passed in as an empty interface? interface{}? |
This comment has been minimized.
This comment has been minimized.
Thanks! |
This comment has been minimized.
This comment has been minimized.
Thank you! |
This comment has been minimized.
This comment has been minimized.
很好的例子,感谢作者! |
This comment has been minimized.
This comment has been minimized.
thanks @drewolson, and @lenw for posting the snippet |
This comment has been minimized.
This comment has been minimized.
yeah this helped me a lot!! |
This comment has been minimized.
This comment has been minimized.
This is a good example. Thanks. |
This comment has been minimized.
This comment has been minimized.
good example. tks |
This comment has been minimized.
This comment has been minimized.
This is a good example. It helped me! |
This comment has been minimized.
This comment has been minimized.
So nice example. Hah, solve my problem perfectly |
This comment has been minimized.
This comment has been minimized.
Line 15: Can panic. |
This comment has been minimized.
This comment has been minimized.
This is a very good example of reflection. Thank you |
This comment has been minimized.
This comment has been minimized.
Thanks!!! |
This comment has been minimized.
This comment has been minimized.
It is what exactly I wanted. :) It helps to save my time a lot. Thanks. |
This comment has been minimized.
This comment has been minimized.
nice example!!! |
This comment has been minimized.
This comment has been minimized.
Thank you! It's helpful for me! |
This comment has been minimized.
This comment has been minimized.
Thank You :) |
This comment has been minimized.
this is a good example for me.
thank you.