1
janxin 2022-10-05 22:58:08 +08:00
runtime 肯定没问题,不过不是只有这个啊
别忘记还有一个 runtime/debug.ReadBuildInfo |
2
Trim21 2022-10-05 23:27:04 +08:00
'/' 只会出现在包名里,先用'/'分割,然后最后一个元素是 包名 + '.' + 函数名,再用 '.' 分割最后一个元素,然后把包名拼起来就行了。
import ( "runtime" "strings" ) func GetCallerPackage() string { pc, _, _, ok := runtime.Caller(1) if ok { name := runtime.FuncForPC(pc).Name() slashIndex := strings.LastIndexByte(name, '/') + 1 pointIndex := strings.IndexByte(name[slashIndex:], '.') return name[:slashIndex+pointIndex] } return "<unknown>" } |
3
lysS 2022-10-06 16:47:40 +08:00
额。。。。这不是常量吗?自己引用了什么包是确定的,可以直接写死
|