我正在学习围棋,我不知道我是否错过了什么,但是搜索后,我想知道:NodeJS 中的 dirname 在 Go 中是否有等价物?如何在 Go 代码中获取当前目录,或者我必须实现一个?
在 Go 中,您可以使用返回与当前目录对应的根路径名的 os.Getwd
。
dir, err := os.Getwd()
if err != nil {
fmt.Errorf("Dir %v does not exists", err)
}
我同时在研究 V 和 Golang,显然,有一个名为 os.Executable()
的函数具有最接近的__dirname
等价物。根据此源,您运行 os.Executable()
函数以获取运行代码的目录,然后执行filepath.Dir()
仅获取绝对路径而不获取可执行文件名称。
我只是从参考中复制粘贴了这个片段,但这就是你在 Go 中获取__dirname
的方式:
package main
import (
"fmt"
"os"
"path/filepath"
)
func main() {
// Getting the path name for the executable
// that started the current process.
pathExecutable, err := os.Executable()
if err != nil {
panic(err)
}
// Getting the directory path/name
dirPathExecutable := filepath.Dir(pathExecutable)
fmt.Println("Directory of the currently running file...")
fmt.Println(dirPathExecutable)
}
我同意,之前的答案是有区别的。它在 V 中的工作方式也类似,它始终会从您运行代码的位置获取当前工作目录。因此,如果您在主目录中,则在运行 os.Getwd()
时,它将打印出主目录而不是您执行代码的位置。