Skip to content

Instantly share code, notes, and snippets.

@zgiber
Created November 14, 2014 13:29
Show Gist options
  • Save zgiber/ef2f4d63579e53e703f6 to your computer and use it in GitHub Desktop.
Save zgiber/ef2f4d63579e53e703f6 to your computer and use it in GitHub Desktop.
Reflection assign field values on a struct
package main
import "fmt"
import "reflect"
func main() {
type Cat struct {
Color string
Name string
Weight int
}
c := Cat{"brown","Tom",3}
details := map[string]interface{}{
"Color":"black",
"Name":"Merlin",
}
rc := reflect.ValueOf(&c)
for k, v := range details{
rv := reflect.ValueOf(v)
rc.Elem().FieldByName(k).Set(rv)
}
fmt.Print(c)
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment