如何在Go语言中获取正在执行的代码文件名?

5

假设我有一个文件:

i_want_this_name.go:

package main

func main(){
    filename := some_func() // should be "i_want_this_name"
}

如何在Go中获取正在执行的代码文件的名称?

2个回答

2
命令的名称可以在os包的文档中找到,如下所示:os.Args [0]

var Args []string

Args保存命令行参数,以程序名开头。

要使用它,请执行以下操作:
package main

import "os"

func main(){
    filename := os.Args[0]
}

2
这应该适用于你:

这对于你来说应该可行:

package main

import (
  "fmt"
  "runtime"
)

func main() {
  _, fileName, lineNum, _ := runtime.Caller(0)
  fmt.Printf("%s: %d\n", fileName, lineNum)
}

http://play.golang.org/p/3T8fr_Hist - plusmid

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接