动态获取golang接口名称

时间:2015-12-15 09:39:33

标签: reflection go interface

我有一个界面:

type Printer interface {
    Print(s string)
}

和func:

func fxyz(name string) {
    ....
}

我想用“打印机”调用fxyz,但我不想对字符串进行硬编码。

如何使用反射或其他方法获取接口名称?

1 个答案:

答案 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