动态获取golang接口名称



我有一个接口:

type Printer interface {
    Print(s string)
}

和一个函数:

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

我想用"Printer"调用fxyz,但我不想硬编码字符串。

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

如果您想获得接口的名称,可以使用reflect:

name := reflect.TypeOf((*Printer)(nil)).Elem().Name()
fxyz(name)

游乐场:http://play.golang.org/p/Lv6-qqqQsH.

注意,不能只取reflect.TypeOf(Printer(nil)).Name(),因为TypeOf将返回nil

相关内容

  • 没有找到相关文章

最新更新