投稿

structの名前を取得する

using reflection in Go to get the name of a struct - Stack Overflow

structの名前を取得する

Go言語でinterface{}として受け取った値の、元の構造体名を実行時に文字列として取得したいときに使う。reflect.ValueOfで値の型情報を取得し、ポインタの場合はreflect.Indirectで実体を辿ってからType().Name()で構造体名を取り出す。

解決

func getType(myvar interface{}) {
    valueOf := reflect.ValueOf(myvar)

    if valueOf.Type().Kind() == reflect.Ptr {
        fmt.Println(reflect.Indirect(valueOf).Type().Name())
    } else {
        fmt.Println(valueOf.Type().Name())
    }
}

using reflection in Go to get the name of a struct - Stack Overflow