【发布时间】:2020-01-18 05:02:09
【问题描述】:
我真的是 Go 新手,我正在尝试在 main.go 中导入本地文件。 项目的结构如下:
-project_name(dir)
--src(dir)
---main.go
---auth(dir)
----signup.go
我正在尝试在main.go 中使用我在signup.go 中编写的函数。
这就是我尝试在main.go 中导入signup.go 的方式:
import (
"encoding/json"
"fmt"
"log"
"net/http"
"github.com/gorilla/mux"
auth "./auth"
)
并像这样使用它:
myRouter.HandleFunc("/signup", auth.signupUser).Methods("POST")
我也尝试复制相关auth dir 并将其写入导入但我仍然收到错误undefined: auth go
我尝试寻找答案,但我看不出我所做的与我看到的答案有什么不同。
【问题讨论】:
-
将
project_name添加到GOPATH环境变量中,也许这些对Relative Imports in golang 和Multiple Directories Gopath 有帮助 -
你不导入文件,你只导入包。不要对包使用相对导入。从How to Write Go Code 开始,它解释了创建一个简单包并导入它所需的所有细节。
-
@GauravDhiman 如果我错了请纠正我,但据我了解,我需要在 GOPATH 中创建我的项目。所以如果我的 go 目录(和 GOPATH)在 /home/go,我需要在那里创建我的所有项目吗?因为我的所有项目都有一个不同的目录,它不是 /home/go。
-
@JohnDoah 不一定,您可以在
GOPATH中添加多个目录,但是要保持项目井井有条,我不建议在GOPATH中为每个项目添加不同的目录 -
auth.signupUser是一个未导出的标识符,因此您将无法从另一个包中使用它。请通过Tour of Go 了解语言基础知识。
标签: go