相关疑难解决方法(0)

如何获取当前的函数名称

为了跟踪目的,我想打印出当前的函数名,就像__FUNCTION__gcc中的宏一样.

所以,当我有一个功能

func foo () {
   trace()
}
Run Code Online (Sandbox Code Playgroud)

它会自动打印出来Entering foo()...或类似的东西.

go

36
推荐指数
3
解决办法
2万
查看次数

在Golang中调用代码的地方可以获取文件名吗?

我能够获取当前目录的完整路径,现在我想创建一个函数,该函数将读取或获取执行代码的文件名。我可以获取文件名,但是它返回编写代码的原始文件名:

func GetFileName() string {
    _, fpath, _, ok := runtime.Caller(0)
    if !ok {
        err := errors.New("failed to get filename")
        panic(err)
    }
    filename := filepath.Base(fpath)
    // remove extension
    filename = removeExtension(filename)
    return filename + ".log"
}
Run Code Online (Sandbox Code Playgroud)

我想要做的是获取执行代码的当前文件名,例如:

我创建了app.go

package my

function getCurrentFileName() string {
    // some code here that will return the filename where this code is executed.
}
Run Code Online (Sandbox Code Playgroud)

然后当我在不同位置(getCurrentFileName()例如hello.go在不同位置)中调用不同文件时。它会返回hello.go

我在这里停留了一段时间,正在寻找答案。

file go

1
推荐指数
1
解决办法
1810
查看次数

标签 统计

go ×2

file ×1