阅读go项目源码时,例如contiv,不方便知道interface有哪些struct实现。开发了一个工具list-interfaces,用来分析go项目源码,找出interface有哪些struct实现。
项目源码仓库
https://git.oschina.net/jscode/list-interfaces
list-interfaces使用
list-interfaces --codedir /appdev/gopath/src/github.com/contiv/netplugin \
--gopath /appdev/gopath \
--outputfile /tmp/result
参数说明
--codedir 要分析的代码目录
--gopath GOPATH环境变量目录
--outputfile 分析结果保存到该文件
输出样例:
interface item 在文件/appdev/gopath/src/github.com/contiv/netplugin/vendor/google.golang.org/grpc/transport/transport.go中
有2个struct实现了接口
struct windowUpdate 在文件/appdev/gopath/src/github.com/contiv/netplugin/vendor/google.golang.org/grpc/transport/control.go中
struct settings 在文件/appdev/gopath/src/github.com/contiv/netplugin/vendor/google.golang.org/grpc/transport/control.go中
下载地址
如果你的系统是fedora25 x86_64或兼容的系统,可以下载已编译好的二进制包。
http://oog2gj1e8.bkt.clouddn.com/list-interfaces
有疑问加站长微信联系(非本文作者)