Go入门笔记-15 Go 使用反射

1、代码

package main

import (
        "fmt"
        "reflect"
)

type Test struct {
        a int
        b int
}

// TypeInstanceToName converts an instance of a type to a unique name.
func TypeInstanceToName(v interface{}) string {
        t := reflect.TypeOf(v)

        if name := t.Name(); name != "" {
                // non-interface types
                return t.PkgPath() + "." + name
        }

        // interface types
        e := t.Elem()
        return e.PkgPath() + "." + e.Name()
}

func main() {

        fmt.Println(TypeInstanceToName(Test{}))

}

2、运行结果

main.Test