3 回答

TA贡献1817条经验 获得超6个赞
如果 obj 是一个,interface{}你可以使用 Go 类型断言:
if correctobj, ok := obj.(interface{methodName()}); ok {
correctobj.methodName()
}

TA贡献1806条经验 获得超5个赞
除了接口大括号{write_function_declaration_here}内@evanmcdonnal的解决方案之外,您将编写函数声明
if correctobj, ok := obj.(interface{methodName(func_arguments_here)(return_elements_here)}); ok {
x,... := correctobj.methodName()
}
IE
package main
import "fmt"
type test struct {
fname string
}
func (t *test) setName(name string) bool {
t.fname = name
return true
}
func run(arg interface{}) {
if obj, ok := arg.(interface{ setName(string) bool });
ok {
res := obj.setName("Shikhar")
fmt.Println(res)
fmt.Println(obj)
}
}
func main() {
x := &test{
fname: "Sticker",
}
fmt.Println(x)
run(x)
}
没有找到匹配的内容?试试慕课网站内搜索吧
- 3 回答
- 0 关注
- 168 浏览
添加回答
举报