gpt4 book ai didi

go - 如何在Go中从当前目录导入文件

转载 作者:行者123 更新时间:2023-12-01 22:39:54 25 4
gpt4 key购买 nike

介绍
我正在尝试将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,但是我想使用本地目录。
我在做什么错,这是什么错误
注意:我想补充一点,我正在使用Windows作为操作系统
谢谢。

最佳答案

有几个问题:

  • 包是导入的,不是文件(如其他答案中所述)
  • 文件绝对导入路径由于错误状态而无效。应用程序可以使用文件相关的导入路径(该路径以“./”开头)或相对于Go工作空间的路径。有关语法的信息,请参见go command doc。相对于Go工作空间的导入路径是首选形式。
  • 包(及其对应的目录)使用小写名称是惯用的。问题中的 Camel 案例名称是可行的,但最好顺其自然。

  • 文档 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")
    }

    Run this example on the Go playground

    关于go - 如何在Go中从当前目录导入文件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/58368003/

    25 4 0
    Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
    广告合作:1813099741@qq.com 6ren.com