Go / GoLang:如何在我的主软件包中导入本地文件?

问题描述 投票:0回答:1

假设我具有以下结构。

export $GOPATH = ~/workspace/go

目录树:

~/workspace
+ go
  + src
    + example
      + exp1
        - main.go
        - client.go
        + utils
          - my_utils.go

在文件main.go中,我想导入“ client.go”和“ utils / my_utils.go”。怎么做?

import {
   "./client.go"
}

会给我

非本地包中的本地导入“ ./client.go”

[子目录中的任何其他文件,例如我的“ utils”文件夹,也会发生同样的情况。

我已经阅读了很多有关此错误消息和GOPATH的信息。但是,来自NodeJS,PHP和C ++的我真的仍然不了解GoLang如何处理文件导入的概念,这里需要进一步说明。

[我也读过人们将从“ GitHub.com”导入所有内容的信息,但是在我可以在本地项目中对其进行测试之前,先将代码推送到GitHub对我来说是没有意义的。

顺便说一句,我也很好奇为什么go get不会与将要用go get来获取的特定库一起获取所有子依赖项?

提前感谢!

go
1个回答
0
投票

[我也读过人们将从“ GitHub.com”导入所有内容的信息,但是在我可以在本地项目中对其进行测试之前,先将代码推送到GitHub对我来说是没有意义的。

您不必将其推到任何地方就可以对其进行测试。您只需选择导入路径是什么,然后将代码相应地放在GOPATH中即可(或将go mod init与Go 1.11+一起使用,从而可以将代码放置在所需的文件系统中的任何位置)。但是,即使您以后决定更改它,也仍然必须选择该导入路径。

顺便说一句,我也很好奇为什么go get不会与go get一起获取的特定库一起获取所有子依赖项?

是。

© www.soinside.com 2019 - 2024. All rights reserved.