gpt4 book ai didi

转到本地包和模块

转载 作者:数据小太阳 更新时间:2023-10-29 03:39:43 25 4
gpt4 key购买 nike

刚开始学习GO开发,看了很多文章和文档,但是没有找到具体的答案。

还有一些问题

  1. 如何使用本地包?使用 ./../ 不起作用,我可以将所有源代码放在 vendor/src 目录下,但这使我的项目结构看起来不像我想要的
  2. 我应该始终将我的包上传到远程存储库中的某处吗?是否可以将它们保留在本地。如果我开发微服务,微服务本身就是一个整体应用程序。而且我不希望我的微服务只有一个文件。我想在多个文件之间拆分逻辑。
  3. 将所有文件保存在一个文件中可以吗?

我知道这个问题已经被问过好几次了,但是我还没有找到任何完整的答案。

如有任何帮助,我将不胜感激。谢谢

最佳答案

首先:阅读“如何编写 Go 代码”并坚持并只坚持它。

  1. go 工具没有“本地包”。忘记本地、非本地、远程等等的区别。对于 go 工具,只有包,这些包有一个导入路径。此导入路径决定了 go 工具将在文件系统中的何处查找代码。如果您的导入路径是 import "int.microsoft/secret/new/foo" 那么您的包 foo 的代码必须位于您机器上的 `$GOPATH/src/int.microsoft/secret/new 下/foo".

    对于 go build 和(go install, go test, ...)在导入路径中根本没有no 含义:“int.microsoft/secret/new/foo"不是 "example1/foo"或 "github.com/someone/tool7/bar"以外的字符串。这些只是字符串,在这些路径中搜索包。这些包都不是“本地”包,它们都只是包。

    因此,如果您将包“whatever”的代码放在 $GOPATH/src/some/strange/path/whatever 下,您必须像 import "some/strange/path/whatever"一样导入它 .

  2. 如果您想与其他人共享您的代码、保留远程备份或想使用像 github 这样的代码托管站点来简化同步您的三个工作站,您可以将您的代码上传到例如github。这与您导入包的方式无关。

    go 工具中的 only 子命令,其中导入路径除了作为路径之外还有其他含义是 go get ,它知道一些代码托管站点,例如github 并解释“github.com/someone/prjct”的导入路径,并可以为您克隆这个 git 存储库,方便地将它放在 $GOPATH 下的正确文件夹中。

    所以:不需要。完全没有必要上传每一段代码。 (例如,我的机器上有很多东西在 $GOPATH/src/tmp 下)。

    将代码拆分为 a) 不同的包和 b 不同的文件与所有这些无关。随心所欲,合乎逻辑。

  3. 嗯,不;很简单,因为您不能将多个文件保存在一个文件中。您的意思是“一个文件夹中的多个文件”吗?是的,没关系。如果拆分有意义,则拆分为文件和包。查看标准库或任何其他开源项目。

关于转到本地包和模块,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/51017164/

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