我正在尝试将EventController.go
导入我的main.go
文件。
├───Controllers
│ └───Event
│ └───EventController.go
├───Models
├───Routes
│
└ Main.go
import (
"log"
"net/http"
_ "/Controllers/Event/EventController.go" //problem here
)
错误:cannot import absolute path
我阅读了一些文档,但事实是,尽管我了解了$ GOPATH,但是我想正确地使用它,但是我想使用本地目录。
我在做什么错,这是什么错误
谢谢。
答案 0 :(得分:2)
有几个问题:
文档How to Write Go Code是有关如何执行此操作的不错的教程。
这是上面给出的重新组织代码的方法。假设main.go在导入路径为“ myapp”的软件包中。将此导入路径更改为所需的任何内容。
-- main.go --
package main
import (
"log"
_ "myapp/controllers/event"
)
func main() {
log.Println("hello from main")
}
-- go.mod --
module myapp
-- controllers/event/eventController.go --
package event
import "log"
func init() {
log.Println("hello from controllers/event")
}
答案 1 :(得分:0)
您无法导入文件。您可以导入包。因此,假设您的主要包是“ github.com/mypackage”包,那么您应该导入“ github.com/mypackage/Controllers/Event”。
答案 2 :(得分:0)
Go支持程序包级别的导入。您可以通过将包添加到文件开头的import语句中来导入包。
在您的情况下,您应该执行以下操作-
import (
"log"
"net/http"
"Controllers/Event/EventController"
)
此外,您应该从文件名中删除第一个“ /”
_ /Controllers/Event/EventController.go" //problem here
因为您的 Controllers 文件夹与 Main.go 文件处于同一级别。您应该始终在import语句中提供相对路径。
通过这种方式,您可以使用 EventController 文件夹下列出的任何文件。