导入包名称与文件名不同的本地包

我有一个具有这种结构的Go项目

src/
    main.go (package main.go)
    www/
        api.go (package apictrl)
        url_mapping.go (package apictrl)
    core/
        model.go (package mlsnd)

当我使用Visual Studio Code和WSL Debian进行编码时,当我写入main.go文件时,我得到了错误。undefined: apictrlapictrl.StartRouter()

我尝试了以下方法:

  •    import (          "../www"
      )
  •   import (          "../www/apictrl"
      )
  •   import (          "../apictrl"
      )
  •   import (          "/mnt/c/Users/myusername/path/toproject/src/apictrl"
      )
  •   import (          "/mnt/c/Users/myusername/path/toproject/src/www/apictrl"
      )
  •   import (          "/mnt/c/Users/myusername/path/toproject/src/www"
      )

正如我在这篇文章中看到的那样,导入包和类型,但它们都不起作用。


PIPIONE
浏览 166回答 1
1回答

偶然的你

因此,正如评论所指出的那样,我发现了解决方案:首先,我必须重命名所有文件夹,以包含它们所包含的包的名称src/     main/         main.go (package main)     apictrl/         api.go (package apictrl)     mlsnd/         model.go (package mlsnd)在main.go中,我必须使用go.mod中给定模块的名称导入所需的包(创建于go mod init package.name)import (    "package.name/src/apictrl")
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

Go