gpt4 book ai didi

go - 有人能解释一下为什么 GOPATH 很方便以及它应该如何使用吗?

转载 作者:IT老高 更新时间:2023-10-28 13:00:24 28 4
gpt4 key购买 nike

我是 Go 编程语言的新手,每个教程都从将 GOPATH 设置为当前项目文件夹开始。

我错过了什么吗?程序员真的应该在 cd 到他的新 Go 项目文件夹时手动设置 GOPATH 吗?我已经阅读了几个关于 GOPATH 的常见问题解答条目,但仍然无法理解它。

那么为什么 GOROOT 会存在呢?它的目的是什么?

是否有任何自动工具可以检测当前目录是否是 Go 项目的根文件夹(例如通过某些隐藏文件)并自动将 GOPATH 更改为该目录?

谢谢你,任何建议真的很受欢迎

ps。例如,我开发了完全不相交的 Go 项目 A、B 和 C,他们应该生活在单一的“工作区”环境中吗?我猜不是,但是那我应该用 GOPATH 和 GOROOT 做什么呢?

最佳答案

GOPATH 的目标是将所有包集中到一个公共(public)工作区中。它本身并不是一个真正的新概念(例如,想想 Java 类路径),但由于不支持包版本控制,Go 的使用变得非常简单。

Go 程序员不应该在进入新项目文件夹时手动设置 GOPATH。每个项目文件夹本身应该是一个包,并且与其他包一起位于 GOPATH 中,因此 GOPATH 应该只设置一次。教程从设置 GOPATH 开始,以便将教程工作区与其他任何东西隔离(或者只是假设用户尚未设置 GOPATH)。

GOROOT 设置为向 Go 程序员提供标准包,您无需对其进行任何操作。简而言之,GOROOT 有一条规则:永远不要碰它。不要在里面安装任何东西,不要修改标准包等。

我不知道有什么工具可以检测当前目录中的 Go 项目,但它的创建应该不会太复杂。

如何处理不同的项目取决于您。 Go 的方式是将每个项目作为一个包放在 $GOPATH/src 目录中,然后从那里做所有事情。因为我不太喜欢它,所以我将我的 GOPATH 定义为 $HOME/.go。然后我将每个项目放在其他地方(我的计算机中的任何地方)的专用目录中,并将项目目录符号链接(symbolic link)到我的 $GOPATH/src 目录中。然后我可以使用每个 Go 工具链命令(例如 go build myproject),将项目用作另一个项目的包,等等。

关于go - 有人能解释一下为什么 GOPATH 很方便以及它应该如何使用吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24306183/

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