Skip to content

Instantly share code, notes, and snippets.

What would you like to do?
Golang Reflection Example
package main
import (
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,
Copy link

himekami commented Mar 4, 2014

this is a good example for me.
thank you.

Copy link

asmedrano commented Apr 10, 2014


Copy link

doojin commented Jun 3, 2014

Thank you very much!
Just helped me.

Copy link

lenw commented Aug 28, 2014

Copy link

jameycribbs commented Apr 3, 2015

Thanks very much for this! Very helpful.

Copy link

0proto commented Aug 28, 2015

Nice snippet, thanks!

Copy link

ulranh commented Aug 28, 2015

Thank you very much! Just needed it.

Copy link

danmondy commented Sep 1, 2015

Does the reflection logic change if foo is passed in as an empty interface? interface{}?

Copy link

rogierlommers commented Jan 14, 2016


Copy link

sofyan-ahmad commented Apr 23, 2016

Thank you! 👍

Copy link

johnstevin commented May 6, 2016

thanks to the author,A good example!

Copy link

sdtsui commented Sep 22, 2016

thanks @drewolson, and @lenw for posting the snippet

Copy link

rmasci commented Feb 14, 2017

yeah this helped me a lot!!

Copy link

maxymania commented Sep 21, 2017

This is a good example. Thanks.

Copy link

huzhengchuan commented Nov 14, 2017

good example. tks

Copy link

manigandand commented Jan 4, 2018

This is a good example. It helped me!

Copy link

oscarzhou commented Jan 25, 2018

So nice example. Hah, solve my problem perfectly

Copy link

Konstantin8105 commented Feb 21, 2018

Copy link

babulal107 commented Jun 20, 2019

This is a very good example of reflection. Thank you

Copy link

aorjoa commented Feb 28, 2020


Copy link

TsuyoshiUshio commented Mar 2, 2020

It is what exactly I wanted. :) It helps to save my time a lot. Thanks.

Copy link

lemon-tree-sheng commented Oct 13, 2020

nice example!!!

Copy link

Lim79Plus commented Oct 26, 2020

Thank you! It's helpful for me!

Copy link

fishparmak commented Feb 22, 2021

Thank You :)

Copy link

maxim-ge commented Jun 25, 2022

Great, thanks!

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment