我有一个界面:
type Printer interface {
Print(s string)
}
和func:
func fxyz(name string) {
....
}
我想用“打印机”调用fxyz,但我不想对字符串进行硬编码。
如何使用反射或其他方法获取接口名称?
答案 0 :(得分:2)
如果您想获取界面的名称,可以使用name := reflect.TypeOf((*Printer)(nil)).Elem().Name()
fxyz(name)
:
reflect.TypeOf(Printer(nil)).Name()
游乐场:http://play.golang.org/p/Lv6-qqqQsH。
注意,您不能只是TypeOf
,因为nil
会返回MySqlCommand
。