【发布时间】:2016-03-21 00:47:59
【问题描述】:
我有一个界面:
type Printer interface {
Print(s string)
}
还有一个函数:
func fxyz(name string) {
....
}
我想用“打印机”调用 fxyz,但我不想对字符串进行硬编码。
如何使用反射或其他方法获取接口名称?
【问题讨论】:
-
你能说明一下你到底想要什么吗?
-
如果我理解得很好,OP 想要一个 Print 的实现来调用 fxyz,将接口的名称作为名称参数传递......好吧,即使这样似乎也不太清楚......使用反射因为这对于简单地使用“Printer”字符串常量来说是一个不可接受的折衷,因为 Print 始终是 Printer 接口的实现......
-
我认为 icza 更多地问的是“为什么”——也就是说,人们经常问如何解决特定问题,而不是问这是否是正确的方法。像这样在 Go 中动态调用接口很可能是错误的方法。
标签: reflection go interface