Documentation ¶
Overview ¶
Package source 提供与 Go 源码相关的一些操作
Index ¶
- func CurrentDir() string
- func CurrentFile() string
- func CurrentFunction() string
- func CurrentLine() int
- func CurrentLocation() (path string, line int)
- func CurrentPath(path string) string
- func DumpStack(w io.Writer, skip int, ignoreRuntime bool, msg ...any)
- func ModDir(p string) (string, error)
- func ModFile(p string) (string, *modfile.File, error)
- func PkgPath(p string) (string, error)
- func PkgSourceDir(pkgPath, modDir string, replace bool) (dir string, err error)
- func Stack(skip int, ignoreRuntime bool, msg ...any) string
Constants ¶
This section is empty.
Variables ¶
This section is empty.
Functions ¶
func CurrentFunction ¶
func CurrentFunction() string
CurrentFunction 获取`调用者`所在的函数名
相当于部分语言的 __FUNCTION__
func CurrentLocation ¶ added in v0.1.2
CurrentLocation 获取`调用者`当前的位置信息
func DumpStack ¶ added in v0.3.1
DumpStack 将调用的堆栈信息写入 w
skip 需要忽略的内容。
- 1 表示 Stack 自身;
- 2 表示 Stack 的调用者,以此类推;
ignoreRuntime 表示是否不显示 runtime 下的系统调用信息; msg 表示需要输出的额外信息;
func ModFile ¶ added in v0.4.0
ModFile 文件或目录 p 所在模块的 go.mod 内容
从当前目录开始依次向上查找 go.mod,从其中获取 go.mod 文件位置,以及文件内容的解析。
func PkgPath ¶ added in v0.10.0
PkgPath 文件或目录 p 的导出路径
会向上查找 go.mod,根据 go.mod 中的 module 结合当前目录组成当前目录的导出路径。
func PkgSourceDir ¶ added in v0.11.0
PkgSourceDir 查找包 pkgPath 的源码目录
如果 pkgPath 是标准库的名称,如 encoding/json 等,则返回当前使用的 Go 版本对应的标准库地址。 其它情况则从 modDir 指向的 go.mod 中查找 require 或是 replace 字段的定义, 并根据这些定义找到其指向的源码路径。 如果 modDir 中不存在 go.mod 会尝试向上一级目录查找。
pkgPath 需要查找的包路径,如果指向的是模块下的包级别的导出路径,则会尝试使用 strings.HasPrefix 与 require 指令进行对比; modDir go.mod 所在的目录,将在该文件中查找 pkgPath 指定的目录; replace 是否考虑 go.mod 中的 replace 指令的影响;
如果找不到,会返回 fs.ErrNotExist
NOTE: 这并不会检测 dir 指向目录是否真实且准确。
Types ¶
This section is empty.