Go语言入门教程
# Go语言入门教程
在本教程中,您将获得Go编程的简要介绍。在本课程中,您将:
- 安装Go(如果您还没有安装)。
- 写一些简单的“你好,世界”代码。
- 使用go命令来运行代码。
- 使用Go程序包发现工具查找可以在自己的代码中使用的程序包。
- 调用外部模块的函数。
注意:有关其他教程,请参见教程。
# 学习的先决条件
- 一些编程经验。这里的代码非常简单,但了解一些函数会有所帮助。
- 用于编辑代码的工具。您拥有的任何文本编辑器都可以正常工作。大多数文本编辑器都很好地支持Go。最受欢迎的是VSCode(免费)、GoLand(付费)和Vim(免费)。
- 一种命令终端。Go在Linux和Mac上以及Windows中的PowerShell或cmd上使用任何终端都能很好地工作。
# 安装Go
依据 Go语言的下载和安装 进行操作
# 写一些简单的Go代码
从Hello,World开始。
- 打开一个终端窗口并cd到您的主目录。 在Linux或Mac上:
cd
在Windows上:
cd %HOMEPATH%
2. 为您的第一个Go源代码创建一个hello目录。
例如,使用以下命令:
mkdir hello
cd hello
- 为代码启用依赖项跟踪。 当您的代码导入包含在其他模块中的包时,您可以通过代码自己的模块来管理这些依赖关系。该模块由一个go.mod文件定义,该文件跟踪提供这些包的模块。该go.mod文件与您的代码一起保存,并包括在您的源代码存储库中。
要通过创建go.mod文件为代码启用依赖项跟踪,请运行go-mod-init命令,为其提供代码所在模块的名称。该名称是模块的模块路径。在大多数情况下,这将是保存源代码的存储库位置,例如github.com/mymodule。如果您计划发布模块供他人使用,则模块路径必须是Go工具可以下载模块的位置。
就本教程而言,只需使用example.com/hello即可。
$go mod init example.com/hello
go:creating new go.mod: module example.com/hello
在文本编辑器中,创建一个文件hello.go,在其中编写代码。
将以下代码粘贴到hello.go文件中并保存该文件。
package main
import "fmt"
func main(){
fmt.Println("Hello,World!")
}
这是你的第一次编写的Go代码。在此代码中,您将:
- 声明一个main包(包是对函数进行分组的一种方式,它由同一目录中的所有文件组成)。
- 导入流行的fmt包,其中包含格式化文本的功能,包括打印到控制台。这个程序包是安装Go时得到的标准库程序包之一。
- 实现一个main方法,将消息打印到控制台。当您运行主程序包时,默认情况下会执行该主函数。
- 运行您的代码以查看问候语。
$go run
Hello,World!
- go-run命令是您使用go完成任务的众多go命令之一。你可以使用以下命令获取其他命令的列表:
$go help
# 调用外部程序包的Go代码
当你的代码需要做一些可能已经被其他人实现的事情时,你可以寻找一个包含你可以在代码中使用的函数的包。
使用来自外部模块的功能,使打印的消息更加有趣。
- 访问pkg.go.dev并搜索“quote”包。
- 在搜索结果中找到并单击rsc.io/quote包(如果您看到rsc.io/quote/v3,请暂时忽略它)。
- 在“Documentation”部分的“索引”下,记下可以从代码中调用的函数列表。您将使用Go功能。
- 在代码页顶部,quote包包含在rsc.io/quote模块中。
您可以使用pkg.go.dev网站查找已发布的模块,这些模块的包中有您可以在自己的代码中使用的功能。包发布在模块中,比如rsc.io/quote,其他人可以在其中使用它们。随着时间的推移,新版本会对模块进行改进,您可以升级代码以使用改进的版本。
2. 在Go代码中,导入rsc.io/quote包并添加对其Go函数的调用。
添加突出显示的行之后,您的代码应该包括以下内容:
package main
import "fmt"
import "rsc.io/quote"
func main(){
fmt.Println(quote.Go())
}
3. 添加新模块的要求和操作。 Go将添加quote模块作为需求,以及用于验证模块的Go.sum文件。有关更多信息,请参阅 [Go modules Reference中的Authenticating modules](http://docscn.studygolang.com/ref/mod#authenticating)。
$ go mod tidy
go: finding module for package rsc.io/quote
go: found rsc.io/quote in rsc.io/quote v1.5.2
4. 运行您的代码以查看您正在调用的函数生成的消息。 ``` shell $go run Don't communicate by sharing memory, share memory by communicating. ``` 请注意,您的代码调用Go函数,打印出一条关于通信的即时消息。
当您运行go mod tidy时,它找到并下载了包含您导入的包的rsc.io/quote模块。默认情况下,它下载最新版本v1.5.2。
# 写更多的代码
通过这个快速介绍,您安装了Go并学习了一些基本知识。要使用另一个教程编写更多的代码,请查看Create a Go模块。