use*_*648 4 reflection interface go
我有一个界面:
type Printer interface {
Print(s string)
}
Run Code Online (Sandbox Code Playgroud)
和一个函数:
func fxyz(name string) {
....
}
Run Code Online (Sandbox Code Playgroud)
我想用“Printer”调用 fxyz,但我不想对字符串进行硬编码。
如何使用反射或其他方法获取接口名称?
如果您想获取接口的名称,可以使用reflect:
name := reflect.TypeOf((*Printer)(nil)).Elem().Name()
fxyz(name)
Run Code Online (Sandbox Code Playgroud)
游乐场:http://play.golang.org/p/Lv6-qqqQsH。
请注意,您不能只接受,reflect.TypeOf(Printer(nil)).Name()因为TypeOf将返回nil。
| 归档时间: |
|
| 查看次数: |
5167 次 |
| 最近记录: |