登录
首页 >  Golang >  Go问答

如何检查对象是否具有特定方法?

来源:Golang技术栈

时间:2023-05-02 19:20:01 320浏览 收藏

来到golang学习网的大家,相信都是编程学习爱好者,希望在这里学习Golang相关编程知识。下面本篇文章就来带大家聊聊《如何检查对象是否具有特定方法?》,介绍一下golang,希望对大家的知识积累有所帮助,助力实战开发!

问题内容

在 Go 中,如何检查对象是否响应方法?

例如,在 Objective-C 中,这可以通过执行以下操作来实现:

if ([obj respondsToSelector:@selector(methodName:)]) { // if method exists
  [obj methodName:42]; // call the method
}

正确答案

一个简单的选择是仅使用您要检查的方法声明一个接口,然后对您的类型进行类型断言,例如;

 i, ok := myInstance.(InterfaceImplementingThatOneMethodIcareAbout)
 // inline iface declaration example
 i, ok = myInstance.(interface{F()})

reflect如果你打算对你的类型做任何太疯狂的事情,你可能想要使用这个包;http://golang.org/pkg/reflect

st := reflect.TypeOf(myInstance)
m, ok := st.MethodByName("F")
if !ok {
    // method doesn't exist
} else {
    // do something like invoke m.F
}   

今天关于《如何检查对象是否具有特定方法?》的内容就介绍到这里了,是不是学起来一目了然!想要了解更多关于golang的内容请关注golang学习网公众号!

声明:本文转载于:Golang技术栈 如有侵犯,请联系study_golang@163.com删除
相关阅读
更多>
最新阅读
更多>
课程推荐
更多>