Guest User

Untitled

a guest
Nov 23rd, 2017
62
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 0.54 KB | None | 0 0
  1. package main
  2.  
  3. import (
  4. "log"
  5. "reflect"
  6. )
  7.  
  8. type Hoge struct {
  9. Name string
  10. }
  11.  
  12. type Fuga struct {
  13. Name string
  14. }
  15.  
  16. func main() {
  17. hogeType := reflect.TypeOf(Hoge{})
  18.  
  19. fugaType := reflect.TypeOf(Fuga{})
  20.  
  21. types := []reflect.Type{
  22. hogeType, fugaType,
  23. }
  24.  
  25. for _, t := range types {
  26. log.Printf("type is %s", t.String())
  27.  
  28. v := reflect.New(t).Interface()
  29. log.Printf("reflect new type is %T", v)
  30.  
  31. var v2 interface{}
  32. if t.Kind() != reflect.Ptr {
  33. v2 = reflect.New(t).Elem().Interface()
  34. }
  35. log.Printf("reflect new elem type is %T", v2)
  36. }
  37. }
Add Comment
Please, Sign In to add comment