-2

作为一个刚接触 Golang 的人,我对$GOPATH.

在我的经验中,它让我想起的唯一一件事是 Microsoft Windows 机器上的“系统文件夹路径”(C:\Windows, C:\Program Files)——它在概念上是否与此相关?

我似乎从 go team那里得到了它的描述,但是它太实用了,它谈论的是它是什么,而不是它为什么是。

那么,为什么会这样呢?

4

2 回答 2

3

这是一个“包含路径”。几乎每一种(现代)语言都使用一种。

对于 C/C++,它是环境变量LIBINC环境变量的组合(至少在 Unix/Makefile 环境中)。

对于 Perl (5),它是PERLLIBorPERL5LIB环境变量。

对于 Python,它是PYTHONHOME环境变量。

对于 Node.js,它是NODE_PATH变量。

等等等等。

于 2017-08-15T07:19:07.063 回答
1

GOPATH是一个变量,指示应用程序依赖项的安装位置。它基本上是您存储应用程序可能使用的包的目录的路径。

任何大小合理的应用程序都有依赖关系。在 golang 中,这些以包的形式出现。在编译时,需要知道依赖项(即您使用的包)的位置,以便可以构建您的可执行文件。

它们可以存储在固定的预定义位置,也可以让用户以某种方式自己指定位置。第一种方法有很多缺点(例如,不可能支持具有不同目录结构的操作系统)。因此,go 工具的设计者决定通过此变量使其用户可配置。这也为用户提供了更大的灵活性,例如能够将不同项目的依赖项分组到不同目录中。

环境变量 (as GOPATH) 的使用不限于 golang。Java 有它的CLASSPATH,Python 有它的PYTHONPATH等等(它们每个都有自己的怪癖,但具有相同的基本角色)。

于 2017-08-15T01:03:52.840 回答