您可以使用包装
reflect(
fmt包装也可以在内部使用)。您可以从
指向 该类型的 指针 开始,并使用没有分配的
类型化
nil_指针值,并且可以使用来从其
reflect.Type描述符导航到指针的
_基本 类型(或 元素 类型)的描述符
Type.Elem()。
例:
t := reflect.TypeOf((*ID)(nil)).Elem()name := t.Name()fmt.Println(name)
输出(在Go Playground上尝试):
ID
注意:请注意,
Type.Name()可能会返回一个空值
string(如果
Type表示未命名的类型)。如果您正在使用类型声明(带有
type关键字),则您已经命名了该类型,因此
Type.Name()将返回一个非空的类型名称。但是
*[]string,例如,将上面的代码用于类型变量将为您提供一个空字符串:
var s *[]stringt := reflect.TypeOf(s).Elem()name := t.Name()fmt.Printf("%q", name)输出(在Go Playground上尝试):
""



