发布时间:2024-11-05 19:44:34
下面是一个示例代码:
``` package main import ( "fmt" "os" ) func main() { fileName := os.Args[0] fmt.Println("当前文件名:", fileName) } ``` 在这个例子中,os.Args[0]表示当前执行的命令行参数。我们可以将其赋值给一个变量,然后使用fmt包打印出来。以下是一个使用path/filepath包的示例代码:
``` package main import ( "fmt" "path/filepath" ) func main() { fileName := filepath.Base(os.Args[0]) fmt.Println("当前文件名:", fileName) } ``` 在这个例子中,我们使用filepath.Base函数从os.Args[0]中获取最后一个元素(即文件名)。然后,我们将其赋值给变量fileName,并打印出来。以下是一个使用runtime包的示例代码:
``` package main import ( "fmt" "path/filepath" "runtime" ) func main() { _, fileName, _, _ := runtime.Caller(0) fileName = filepath.Base(fileName) fmt.Println("当前文件名:", fileName) } ``` 在这个例子中,我们使用runtime.Caller(0)来获取当前函数的信息。然后,我们使用filepath.Base函数从这个信息中获取文件名,并打印出来。以下是一个使用reflect包的示例代码:
``` package main import ( "fmt" "path/filepath" "reflect" "runtime" ) func main() { pc, _, _, _ := runtime.Caller(0) fn := runtime.FuncForPC(pc) fileName, _ := fn.File() fileName = filepath.Base(fileName) fmt.Println("当前文件名:", fileName) } ``` 在这个例子中,我们使用runtime.Caller(0)来获取当前函数的信息。然后,我们使用runtime.FuncForPC(pc)获取函数对象,再使用File方法获取文件名,并打印出来。参考文献: