go - 导入本地文件

标签 go

这个问题在这里已经有了答案:





Relative imports in Go

(6 个回答)


2年前关闭。




我真的是 Go 新手,我正在尝试在 main.go 中导入本地文件。
这是项目的结构:

-project_name(dir)
--src(dir)
---main.go
---auth(dir)
----signup.go

我正在尝试使用我在 signup.go 中编写的函数在 main.go .
这就是我尝试导入 signup.go 的方式在 main.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
我试图寻找答案,但我看不出我在做什么与我看到的答案不同。

最佳答案

Go 中不建议使用相对导入。

如果 project_name在你的 GOPATH 中,比如 $GOPATH/github.com/john/project_name ,可以导入auth像这样:

import "github.com/john/project_name/src/auth"

如果您使用 Go modules , 然后代替 github.com/john/project_name ,使用您的go.mod 中的任何名称.如果您不使用 Go 模块但想使用,可以执行 go mod init github.com/john/project_name而在project_name文件夹,然后该文件夹将用作基础。

请注意 signupUser实际上必须是 SignupUser被导出(因此可用)。

关于go - 导入本地文件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/59794042/

相关文章:

go - Rails RSpec 就像在 Google Go 中测试一样

go - 使用 gofmt 重构工具重命名全局变量

go - 补丁标准包

go - 在 Go 中访问结构属性

go - rpc.ServerCodec 还在服务吗?

windows - windows环境下如何通过进程名获取进程id?

xml - Go - 如何使用 slice 将 XML 解码到容器结构中

go - 如何使用 go doc 查找包中的所有常量?

elasticsearch - 如何在 Elastigo 中设置 Content-Type header

go - Reflection.DeepEqual()返回false但 slice 相同