Skip to content

Commit

Permalink
更新docs中关于go命令的链接
Browse files Browse the repository at this point in the history
  • Loading branch information
before80 committed Jun 5, 2023
1 parent a9352cc commit a3e544a
Show file tree
Hide file tree
Showing 17 changed files with 31 additions and 31 deletions.
6 changes: 3 additions & 3 deletions content/docs/AboutTheGoCommand.md
Original file line number Diff line number Diff line change
Expand Up @@ -24,7 +24,7 @@ draft = false

## 配置与约定

​ 实现无需配置的简单系统的方法是建立约定。系统只有在遵循这些约定的程度上才能发挥作用。当 Go 首次发布时,许多人发布的软件包必须安装在特定的位置,使用特定的构建工具才能使用,这是可以理解的,因为大多数其他编程语言都是这样的。在过去的几年中,我们一直提醒人们 `goinstall` 命令(现在已被 [go get](../References/CommandDocumentation/go) 命令取代)及其约定,即导入路径的推导方法是从源代码的 URL 中获取的,本地文件系统存储源代码的位置是从导入路径的推导方法中获取的,源代码树中的每个目录对应一个软件包,且该软件包只使用源代码中的信息进行构建。今天,绝大多数软件包都遵循这些约定。结果,Go 生态系统变得更加简单和强大。
​ 实现无需配置的简单系统的方法是建立约定。系统只有在遵循这些约定的程度上才能发挥作用。当 Go 首次发布时,许多人发布的软件包必须安装在特定的位置,使用特定的构建工具才能使用,这是可以理解的,因为大多数其他编程语言都是这样的。在过去的几年中,我们一直提醒人们 `goinstall` 命令(现在已被 [go get]({{< ref "/cmd/go">}}) 命令取代)及其约定,即导入路径的推导方法是从源代码的 URL 中获取的,本地文件系统存储源代码的位置是从导入路径的推导方法中获取的,源代码树中的每个目录对应一个软件包,且该软件包只使用源代码中的信息进行构建。今天,绝大多数软件包都遵循这些约定。结果,Go 生态系统变得更加简单和强大。

​ 我们收到了许多允许在软件包目录中提供 makefile 以提供比源代码更少的额外配置的请求。但这会引入新的规则。由于我们没有同意这样的请求,我们能够编写 go 命令并消除我们对 make 或任何其他构建系统的使用。

Expand Down Expand Up @@ -124,9 +124,9 @@ $

## 限制

​ 如上所述,go 命令不是通用的构建工具。特别是,它没有任何生成 Go 源文件的功能,尽管它提供了 [go generate](../References/CommandDocumentation/go),可以在构建之前自动创建 Go 文件。对于更高级的构建设置,您可能需要编写一个 makefile(或您选择的构建工具的配置文件),以运行创建 Go 文件的任何工具,然后将这些生成的源文件检入到您的仓库中。这对于包的作者来说可能需要更多的工作,但对于您的用户来说,他们可以使用 "`go get`" 而无需获取和构建任何其他工具,这显然是更简单的。
​ 如上所述,go 命令不是通用的构建工具。特别是,它没有任何生成 Go 源文件的功能,尽管它提供了 [go generate]({{< ref "/cmd/go">}}),可以在构建之前自动创建 Go 文件。对于更高级的构建设置,您可能需要编写一个 makefile(或您选择的构建工具的配置文件),以运行创建 Go 文件的任何工具,然后将这些生成的源文件检入到您的仓库中。这对于包的作者来说可能需要更多的工作,但对于您的用户来说,他们可以使用 "`go get`" 而无需获取和构建任何其他工具,这显然是更简单的。

## 更多信息

​ 更多信息,请阅读[How to Write Go Code](../GettingStarted/HowToWriteGoCode)并查看[go命令文档](../References/CommandDocumentation/go)
​ 更多信息,请阅读[How to Write Go Code](../GettingStarted/HowToWriteGoCode)并查看[go命令文档]({{< ref "/cmd/go">}})。

2 changes: 1 addition & 1 deletion content/docs/FAQ.md
Original file line number Diff line number Diff line change
Expand Up @@ -960,7 +960,7 @@ Safety. Without pointer arithmetic it's possible to create a language that can n

​ Go使用花括号对语句进行分组,这是使用过C语言的程序员都熟悉的语法。然而,分号是给解析器用的,不是给人用的,我们想尽可能地消除它们。为了实现这一目标,Go从`BCPL`中借鉴了一个技巧:分隔语句的分号在形式语法中存在,但在任何可能是语句结尾的行的末尾,由词法分析器自动注入,without lookahead。这在实践中效果很好,但有一个影响,那就是它强制采用了花括号样式。例如,一个函数的开头花括号不能单独出现在一行中。

​ 有些人认为,lexer 应该进行查找,以允许括号出现在下一行。我们不同意这个观点。由于Go代码是由[gofmt](../References/CommandDocumentation/gofmt)自动格式化的,所以必须选择一些风格。这种风格可能与您在C或Java中使用的不同,但Go是一种不同的语言,`gofmt`的风格与其他语言一样好。更重要的是——要重要得多的是——为所有Go程序提供单一的、程序化的强制格式的优势大大超过了特定风格的任何感知的缺点。还要注意的是,Go的风格意味着Go的交互式实现可以一行一行地使用标准语法,而不需要特别的规则。
​ 有些人认为,lexer 应该进行查找,以允许括号出现在下一行。我们不同意这个观点。由于Go代码是由[gofmt]({{< ref "/cmd/gofmt">}})自动格式化的,所以必须选择一些风格。这种风格可能与您在C或Java中使用的不同,但Go是一种不同的语言,`gofmt`的风格与其他语言一样好。更重要的是——要重要得多的是——为所有Go程序提供单一的、程序化的强制格式的优势大大超过了特定风格的任何感知的缺点。还要注意的是,Go的风格意味着Go的交互式实现可以一行一行地使用标准语法,而不需要特别的规则。

### Why do garbage collection? Won't it be too expensive? 为什么要做垃圾收集?不会代价太大吗?

Expand Down
2 changes: 1 addition & 1 deletion content/docs/FAQ_En_Zh.md
Original file line number Diff line number Diff line change
Expand Up @@ -1462,7 +1462,7 @@ Go uses brace brackets for statement grouping, a syntax familiar to programmers

Some have argued that the lexer should do lookahead to permit the brace to live on the next line. We disagree. Since Go code is meant to be formatted automatically by [`gofmt`](https://go.dev/cmd/gofmt/), *some* style must be chosen. That style may differ from what you've used in C or Java, but Go is a different language and `gofmt`'s style is as good as any other. More important—much more important—the advantages of a single, programmatically mandated format for all Go programs greatly outweigh any perceived disadvantages of the particular style. Note too that Go's style means that an interactive implementation of Go can use the standard syntax one line at a time without special rules.

​ 有些人认为,lexer 应该进行查找,以允许括号出现在下一行。我们不同意这个观点。由于Go代码是由[gofmt](../References/CommandDocumentation/gofmt)自动格式化的,所以必须选择一些风格。这种风格可能与您在C或Java中使用的不同,但Go是一种不同的语言,`gofmt`的风格与其他语言一样好。更重要的是——要重要得多的是——为所有Go程序提供单一的、程序化的强制格式的优势大大超过了特定风格的任何感知的缺点。还要注意的是,Go的风格意味着Go的交互式实现可以一行一行地使用标准语法,而不需要特别的规则。
​ 有些人认为,lexer 应该进行查找,以允许括号出现在下一行。我们不同意这个观点。由于Go代码是由[gofmt]({{< ref "/cmd/gofmt">}})自动格式化的,所以必须选择一些风格。这种风格可能与您在C或Java中使用的不同,但Go是一种不同的语言,`gofmt`的风格与其他语言一样好。更重要的是——要重要得多的是——为所有Go程序提供单一的、程序化的强制格式的优势大大超过了特定风格的任何感知的缺点。还要注意的是,Go的风格意味着Go的交互式实现可以一行一行地使用标准语法,而不需要特别的规则。

### Why do garbage collection? Won't it be too expensive? 为什么要做垃圾收集?不会代价太大吗?

Expand Down
6 changes: 3 additions & 3 deletions content/docs/GettingStarted/HowToWriteGoCode.md
Original file line number Diff line number Diff line change
Expand Up @@ -13,7 +13,7 @@ draft = false
## 简介

​ 本文档演示了在模块中开发一个简单的Go包,并介绍了[go tool](../../References/CommandDocumentation/go),这是获取、构建和安装Go模块、包和命令的标准方式。
​ 本文档演示了在模块中开发一个简单的Go包,并介绍了[go tool]({{< ref "/cmd/go">}}),这是获取、构建和安装Go模块、包和命令的标准方式。

> 注意:本文档假设您使用的是`Go 1.13`或更高版本,并且没有设置`GO111MODULE`环境变量。如果您要找的是本文档的旧版,即模块之前的版本,它被存档在[这里](../HowToWriteGoCodeWithGOPATH)
Expand All @@ -25,7 +25,7 @@ draft = false

​ 请注意,您不需要在构建之前将您的代码发布到一个远程仓库。一个模块可以在本地定义而不属于一个版本库。然而,组织您的代码是一个好习惯,就像您有一天会发布它一样。

​ 每个模块的路径不仅作为其包的导入路径前缀,而且还指出`go`命令应该在哪里下载它。例如,为了下载`golang.org/x/tools`模块,go命令会查阅[https://golang.org/x/tools](https://golang.org/x/tools)[这里](../../References/CommandDocumentation/go#remote-import-paths)有更多描述)所指示的仓库。
​ 每个模块的路径不仅作为其包的导入路径前缀,而且还指出`go`命令应该在哪里下载它。例如,为了下载`golang.org/x/tools`模块,go命令会查阅[https://golang.org/x/tools](https://golang.org/x/tools)[这里]({{< ref "/cmd/go#remote-import-paths">}})有更多描述)所指示的仓库。

​ 导入路径是一个用于导入软件包的字符串。一个包的导入路径是它的模块路径与模块中的子目录相连接。例如,模块`github.com/google/go-cmp``cmp/`目录下包含一个包。该包的导入路径是`github.com/google/go-cmp/cmp`**标准库中的包没有模块路径前缀**

Expand Down Expand Up @@ -68,7 +68,7 @@ $

​ 这个命令构建了`hello`命令,产生了一个可执行的二进制文件。然后,它将该二进制文件安装为`$HOME/go/bin/hello`(或者,在Windows下,`%USERPROFILE%\gobinhello.exe`)。

​ 安装目录是由`GOPATH``GOBIN`[环境变量](../../References/CommandDocumentation/go#environment-variables)控制的。如果设置了`GOBIN`,二进制文件将被安装到该目录。如果设置了`GOPATH`,二进制文件将被安装到`GOPATH`列表中第一个目录的`bin`子目录中。否则,二进制文件将被安装到默认的 `GOPATH``$HOME/go``%USERPROFILE%\go`)的 `bin` 子目录。
​ 安装目录是由`GOPATH``GOBIN`[环境变量]({{< ref "/cmd/go#environment-variables">}})控制的。如果设置了`GOBIN`,二进制文件将被安装到该目录。如果设置了`GOPATH`,二进制文件将被安装到`GOPATH`列表中第一个目录的`bin`子目录中。否则,二进制文件将被安装到默认的 `GOPATH``$HOME/go``%USERPROFILE%\go`)的 `bin` 子目录。

​ 您可以使用`go env`命令为未来的`go`命令可移植地设置环境变量的默认值:

Expand Down
2 changes: 1 addition & 1 deletion content/docs/GettingStarted/HowToWriteGoCodeWithGOPATH.md
Original file line number Diff line number Diff line change
Expand Up @@ -14,7 +14,7 @@ draft = false

​ 如果您是Go的新手,请看最近的[How to Write Go Code](../HowToWriteGoCode)

​ 本文演示了一个简单的 Go 包的开发,并介绍了 [go tool](../../References/CommandDocumentation/go),这是获取、构建和安装 Go 包和命令的标准方法。
​ 本文演示了一个简单的 Go 包的开发,并介绍了 [go tool]({{< ref "/cmd/go">}}),这是获取、构建和安装 Go 包和命令的标准方法。

`go tool`要求您以特定的方式组织您的代码。请仔细阅读本文档。它解释了最简单的方法来启动和运行您的Go安装。

Expand Down
2 changes: 1 addition & 1 deletion content/docs/GettingStarted/TutorialGetStartedWithGo.md
Original file line number Diff line number Diff line change
Expand Up @@ -99,7 +99,7 @@ $ go run .
Hello, World!
```

[go run 命令](../../References/CommandDocumentation/go#编译并运行Go程序)是您用Go完成任务的众多`go`命令之一。使用下面的命令来获得其他命令的列表:
[go run 命令]({{< ref "/cmd/go#编译并运行Go程序">}})是您用Go完成任务的众多`go`命令之一。使用下面的命令来获得其他命令的列表:

```shell
$ go help
Expand Down
4 changes: 2 additions & 2 deletions content/docs/GoDocComments.md
Original file line number Diff line number Diff line change
Expand Up @@ -12,7 +12,7 @@ draft = false
​ "Doc comments"是指出现在顶级package、const、func、type和var声明前的注释,中间没有换行。每个导出的(大写的)名称都应该有一个文档注释。

[go/doc](https://go.dev/pkg/go/doc)[go/doc/comment](https://go.dev/pkg/go/doc/comment) 包提供了从 Go 源代码中提取文档的能力,许多工具都利用了这一功能。[go doc](../References/CommandDocumentation/go#show-documentation-for-package-or-symbol) 命令查找并打印出指定包或符号的文档注释。(符号是顶级的 const、func、type 或 var。)Web服务器 [pkg.go.dev](https://pkg.go.dev/) 显示了公共 Go 包的文档(当其许可证允许使用时)。为该网站服务的程序是 [golang.org/x/pkgsite/cmd/pkgsite](https://pkg.go.dev/golang.org/x/pkgsite/cmd/pkgsite),它也可以在本地运行以查看私有模块的文档,或者在没有互联网连接的情况下。语言服务器[gopls](https://pkg.go.dev/golang.org/x/tools/gopls)在IDE中编辑Go源文件时提供文档。
[go/doc](https://go.dev/pkg/go/doc)[go/doc/comment](https://go.dev/pkg/go/doc/comment) 包提供了从 Go 源代码中提取文档的能力,许多工具都利用了这一功能。[go doc]({{< ref "/cmd/go#show-documentation-for-package-or-symbol">}}) 命令查找并打印出指定包或符号的文档注释。(符号是顶级的 const、func、type 或 var。)Web服务器 [pkg.go.dev](https://pkg.go.dev/) 显示了公共 Go 包的文档(当其许可证允许使用时)。为该网站服务的程序是 [golang.org/x/pkgsite/cmd/pkgsite](https://pkg.go.dev/golang.org/x/pkgsite/cmd/pkgsite),它也可以在本地运行以查看私有模块的文档,或者在没有互联网连接的情况下。语言服务器[gopls](https://pkg.go.dev/golang.org/x/tools/gopls)在IDE中编辑Go源文件时提供文档。

​ 本页的其余部分记录了如何编写 Go 文档注释。

Expand Down Expand Up @@ -41,7 +41,7 @@ package path

## Commands 命令

​ 命令的包注释与此类似,但它描述的是程序的行为而不是包中的Go符号。第一句话通常以程序本身的名称开始,大写的原因是它位于句子的开头。例如,这里是[gofmt](../References/CommandDocumentation/gofmt)的包注释的简化版本:
​ 命令的包注释与此类似,但它描述的是程序的行为而不是包中的Go符号。第一句话通常以程序本身的名称开始,大写的原因是它位于句子的开头。例如,这里是[gofmt]({{< ref "/cmd/gofmt">}})的包注释的简化版本:

```
/*
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -104,4 +104,4 @@ GOSUMDB="sum.golang.org+<publickey> https://sum.golang.org"

​ 如果 `GOSUMDB` 被设置为`off`,或者在调用 `go get` 时使用了 `-insecure` 标志,则不会查询校验和数据库,并接受所有未识别的模块,代价是放弃了对所有模块的可重复下载的安全保证。一个更好的方法是使用`GOPRIVATE``GONOSUMDB`环境变量来绕过特定模块的校验和数据库。详见[Private Modules(私有模块)](../PrivateModules)

`go env -w`命令可用于为将来的`go`命令调用[设置这些变量](../../CommandDocumentation/go#print-go-environment-information)
`go env -w`命令可用于为将来的`go`命令调用[设置这些变量]({{< ref "/cmd/go#print-go-environment-information">}})。
Original file line number Diff line number Diff line change
Expand Up @@ -10,7 +10,7 @@ draft = false

> 原文:[https://go.dev/ref/mod#environment-variables](https://go.dev/ref/mod#environment-variables)
`go`命令中的模块行为可以使用下面列出的环境变量进行配置。这个列表只包括与模块相关的环境变量。有关`go`命令识别的所有环境变量的列表,请参阅[go help environment](../../CommandDocumentation/go#environment-variables)
`go`命令中的模块行为可以使用下面列出的环境变量进行配置。这个列表只包括与模块相关的环境变量。有关`go`命令识别的所有环境变量的列表,请参阅[go help environment]({{< ref "/cmd/go#environment-variables">}})。

### GO111MODULE

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -637,11 +637,11 @@ $ go version -m ~/go/bin/goimports
go clean [-modcache]
```

`-modcache`标志使[go clean](../../CommandDocumentation/go#remove-object-files-and-cached-files)移除整个[module cache(模块缓存)](../Glossary#module-cache),包括版本化依赖项的未打包的源代码。
`-modcache`标志使[go clean]({{< ref "/cmd/go#remove-object-files-and-cached-files">}})移除整个[module cache(模块缓存)](../Glossary#module-cache),包括版本化依赖项的未打包的源代码。

​ 这通常是移除模块缓存的最佳方式。默认情况下,模块缓存中的大多数文件和目录都是只读的,以防止测试和编辑者在通过[authenticated(认证)](../AuthenticatingModules)后无意中改更改文件。不幸的是,这导致像`rm -r`这样的命令失败,因为如果不首先使其父目录可写,就无法移除文件。

`-modcacherw`标志(被[go build](../../CommandDocumentation/go#compile-packages-and-dependencies)和其他模块感知命令接受)使模块缓存中的新目录可以被写入。要将`-modcacherw`传递给所有的模块感知命令,请将其加入到`GOFLAGS`变量。`GOFLAGS`可以在环境中设置,也可以用[go env -w](../../CommandDocumentation/go#print-go-environment-information)设置。例如,下面的命令会永久地设置它:
`-modcacherw`标志(被[go build]({{< ref "/cmd/go#compile-packages-and-dependencies">}})和其他模块感知命令接受)使模块缓存中的新目录可以被写入。要将`-modcacherw`传递给所有的模块感知命令,请将其加入到`GOFLAGS`变量。`GOFLAGS`可以在环境中设置,也可以用[go env -w]({{< ref "/cmd/go#print-go-environment-information">}})设置。例如,下面的命令会永久地设置它:

```
go env -w GOFLAGS=-modcacherw
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -20,7 +20,7 @@ draft = false
- `GONOSUMDB` —— 不应使用公共校验和数据库 [sum.golang.org](https://sum.golang.org/) 进行检查的模块路径前缀的 glob 模式列表。
- `GOINSECURE` —— 可以通过HTTP和其他不安全协议检索的模块路径前缀的 glob 模式列表。

​ 这些变量可以在开发环境中设置(例如,在 `.profile` 文件中),也可以用 [go env -w](../../CommandDocumentation/go#print-go-environment-information) 永久设置。
​ 这些变量可以在开发环境中设置(例如,在 `.profile` 文件中),也可以用 [go env -w]({{< ref "/cmd/go#print-go-environment-information">}}) 永久设置。

​ 本节的其余部分描述了提供访问私有模块代理和版本控制存储库的常见模式。

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -161,7 +161,7 @@ GOVCS=*:all
GOVCS=*:off
```

[go env -w 命令](../../CommandDocumentation/go#print-go-environment-information)可以用来设置 `GOVCS` 变量,以便今后调用 `go` 命令。
[go env -w 命令]({{< ref "/cmd/go#print-go-environment-information">}})可以用来设置 `GOVCS` 变量,以便今后调用 `go` 命令。

`GOVCS` 是在 Go 1.16 中引入的。早期版本的Go可以对任何模块使用任何已知的版本控制工具。

2 changes: 1 addition & 1 deletion content/docs/References/gomodFileReference.md
Original file line number Diff line number Diff line change
Expand Up @@ -28,7 +28,7 @@ $ go mod init example/mymodule

​ 使用`go`命令来管理依赖项。这些命令确保您的`go.mod`文件中描述的需求保持一致,并且`go.mod`文件的内容是有效的。这些命令包括`go get``go mod tidy`以及`go mod edit`命令。

​ 关于`go`命令的参考,请看[go 命令](../CommandDocumentation/go)。您可以通过输入`go help command-name`从命令行获得帮助,如`go help mod tidy`
​ 关于`go`命令的参考,请看[go 命令]({{< ref "/cmd/go">}})。您可以通过输入`go help command-name`从命令行获得帮助,如`go help mod tidy`

**参见**

Expand Down

0 comments on commit a3e544a

Please sign in to comment.