首页 > 后端开发 > Golang > 正文

有没有办法通过 go cmdline 或 IDE (IntelliJ) 找出我的结构实现了哪些接口?

PHPz
发布: 2024-02-09 09:30:38
转载
613人浏览过

有没有办法通过 go cmdline 或 ide (intellij) 找出我的结构实现了哪些接口?

php小编小新回答你的问题,如果你想知道你的结构实现了哪些接口,有几种方法可以实现。首先,你可以使用go cmdline命令行工具来查找。在命令行中输入"go doc -all",然后按回车键,它会显示出你的结构中实现的所有接口。另外,如果你使用的是IntelliJ IDE,你可以使用它提供的代码导航功能来找出你的结构实现的接口。只需在代码中找到你的结构定义,然后按住Ctrl键并单击结构名称,它将会显示出所有的接口实现。希望这些方法对你有所帮助!

问题内容

说我有

// main.go
type Speaker interface {
  Speak()
}

type Person struct {}

func (p *Person) Speak() {
   panic("test")
}
登录后复制

给定代码中其他地方的人,有没有办法知道 Person 实现了哪些接口?很明显,Person 实现了Speaker,但是如果是其他类型呢

type Ghost interface {
  Speak()
}
登录后复制

存在于另一个包中?

就上下文而言,我正在查看代码库,但很难决定是否可以删除接收器方法,因为很难判断该方法是否存在是为了满足接口要求,还是只是为了增强功能。在独立的代码库中,我可以删除它并查看是否出现编译器错误,但我不能在公共库中执行相同的操作。

OneAI
OneAI

将生成式AI技术打包为API,整合到企业产品和服务中

OneAI 112
查看详情 OneAI

解决方法

从 goland 文档中,您可以使用正在实现或覆盖您的界面的装订线图标转到单个实现,或者您可以使用 Cmd + U 找到所有实现(假设您在 Mac 上工作)。这是文档的链接:

https://www.jetbrains .com/help/go/navigating-through-the-source-code.html#go_to_implementation

由于 Goland 是基于 IntelliJ 的 Go IDE,因此您应该能够执行相同的操作。您可能需要配置装订线图标,但相同的命令应该在 IntelliJ 中工作。

以上就是有没有办法通过 go cmdline 或 IDE (IntelliJ) 找出我的结构实现了哪些接口?的详细内容,更多请关注php中文网其它相关文章!

相关标签:
最佳 Windows 性能的顶级免费优化软件
最佳 Windows 性能的顶级免费优化软件

每个人都需要一台速度更快、更稳定的 PC。随着时间的推移,垃圾文件、旧注册表数据和不必要的后台进程会占用资源并降低性能。幸运的是,许多工具可以让 Windows 保持平稳运行。

下载
来源:stackoverflow网
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn
最新问题
热门推荐
开源免费商场系统广告
热门教程
更多>
最新下载
更多>
网站特效
网站源码
网站素材
前端模板
关于我们 免责申明 举报中心 意见反馈 讲师合作 广告合作 最新更新 English
php中文网:公益在线php培训,帮助PHP学习者快速成长!
关注服务号 技术交流群
PHP中文网订阅号
每天精选资源文章推送
PHP中文网APP
随时随地碎片化学习

Copyright 2014-2025 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号