Go 接口所在源码包定位

在写代码时,定义一个结构体。然后实现 func String() string 方法,可以在输出时格式化对象表示。然后,想要了解 String() 在go 源码中的位置。如果不知道源码中 String() 所在接口,有没有什么办法比较快速的定位到 String() 源码 所在的包?

已邀请:

visualfc - Go工具开发

赞同来自: tangyumeng astaxie gogoing

Go的oracle工具支持接口查询 implements (新的工具叫guru,liteide集成的是oracle) https://github.com/golang/tools

在liteide中可以在String上右键使用Oracle的What

func (m *M) String() {...

输出

wait for oracle what ...
main.go:11.13-11.18: identifier
main.go:11.1-13.1: function declaration
main.go:2.1-17.1: source file
-: modes: [callers callstack definition describe implements pointsto referrers]

 [callers callstack definition describe implements pointsto referrers]

双击 implements 获得结果

wait for oracle implements ...
main.go:11:13: concrete method func (*M).String() string
c:\go\go\src\fmt\print.go:63:2:     implements method (fmt.Stringer).String
c:\go\go\src\runtime\error.go:65:2:     implements method (runtime.stringer).String

astaxie - 创造、获取、分享、传播和应用Go

赞同来自: tangyumeng

你都说了是输出的,所以可以去fmt包找一下,https://golang.org/pkg/fmt/#Stringer

至于工具的话目前没有那么AI的工具

qi19901212 - 一个喜欢讲产品代码敲的不怎么样的.......

赞同来自: tangyumeng

 我觉得你找的是这个guru http://www.jianshu.com/p/7785511097ef

Guru 详细内容http://www.jianshu.com/p/994e85e21135(翻译的烂)

ducklife

赞同来自:

Thanks to this article I can learn more. Expand my knowledge and abilities. Actually the article is very practical. word games

要回复问题请先登录注册