教程:Go入门

本文翻译自《Tutorial: Get started with Go》。

目录

先决条件

安装Go

写一些代码

在外部包中调用代码

写更多的代码

在本教程中,你将简要介绍Go编程。在此过程中,你将:

  • 安装Go(如果尚未安装)。
  • 编写一些简单的“Hello, world”代码。
  • 使用go命令运行你的代码。
  • 使用Go包工具查找可在你的代码中使用的包。
  • 调用外部模块的函数。

注意:有关其他教程,请参阅教程

先决条件

  • 一些编程经验。此处的代码非常简单,但有助于了解一些有关函数的知识。
  • 一个编辑代码的工具。你拥有的任何文本编辑器都可以正常工作。大多数文本编辑器都对Go有很好的支持。最受欢迎的是VSCode(免费)、GoLand(付费)和Vim(免费)。
  • 一个命令行终端。Go在Linux和Mac上的任何终端,以及Windows中的PowerShell或cmd上都能很好地工作。

安装Go

只需使用下载和安装步骤。

写一些代码

从Hello,World开始。

1 打开命令提示符并cd到家目录。

在Linux或Mac上:

cd

在Windows上:

cd %HOMEPATH%

2 为第一个Go源代码创建hello目录。

例如,使用以下命令:

mkdir hello
cd hello

3 为代码启用依赖项跟踪。

当你的代码导入包含在其他模块中的包时,你可以在自己的模块中管理这些依赖关系。该模块由go.mod文件定义,该文件跟踪提供这些包的模块。go.mod文件将保留在源代码中,包括源代码存储库中。

要通过创建go.mod文件来启用代码的依赖项跟踪,请运行go mod init命令,为其指定代码所在模块的名称。该名称会成为模块的模块路径。

在实际开发中,模块路径通常是保存源代码的存储库的位置。例如,模块路径可能是github.com/mymodule。如果你计划发布模块供其他人使用,则模块路径必须是Go工具可以下载到该模块的位置。有关使用模块路径命名模块的详细信息,请参阅管理依赖项

在本教程中,只需使用example/hello

$ go mod init example/hello
go: creating new go.mod: module example/hello

4 在文本编辑器中,创建一个文件hello.go,在其中编写代码。

5 将以下代码粘贴到hello.go文件中并保存该文件。

package main

import "fmt"

func main() {
    fmt.Println("Hello, World!")
}

这是你的Go代码。在此代码中,你:

  • 声明一个main包(包是对函数进行分组的一种方式,它由同一目录中的所有文件组成)。
  • 导入流行的fmt,其中包含格式化文本的功能,包括打印到控制台。此软件包是安装Go时获得的标准库软件包之一。
  • 实现将消息打印到控制台的main函数。运行main包时,默认情况下会执行main函数。

6 运行你的代码以查看这句问候语。

$ go run .
Hello, World!

go run命令是你将使用Go完成任务的众多命令之一。使用以下命令获取其他列表:

$ go help

在外部包中调用代码

当你需要你的代码执行其他人可能已实现的操作时,你可以寻找具有对应功能的第三方包。

1 使用外部模块的功能使你打印的消息更有趣。

1) 访问pkg.go.dev并搜索“quote”包

2) 在搜索结果中找到并单击rsc.io/quote包(如果你看到rsc.io/quote/v3,请暂时忽略它)。

3) 在“文档Documentation”部分的“索引Index”下,记下你可以从代码中调用的函数列表。你将使用Go函数。

4) 在本页顶部,请注意包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.sum。

Go将根据需要添加rsc.io/quote模块,以及用于验证模块的go.sum文件。有关更多信息,请参阅Go modules Reference中的Authenticating modules

$ go mod tidy
go: finding module for package rsc.io/quote
go: found rsc.io/quote in rsc.io/quote v1.5.2

4 运行代码以查看所调用函数生成的消息。

$ go run .
Don't communicate by sharing memory, share memory by communicating.

请注意,你的代码调用Go函数,打印关于通信的巧妙消息。

当你运行go mod tidy时,它找到并下载了包含你导入的包的rsc.io/quote模块。默认情况下,它下载最新版本——v1.5.2。

写更多的代码

通过这篇快速入门教程,你安装了Go并学习了一些基本知识。要使用其他教程编写更多代码,请查看创建一个Go模块

发表回复

您的电子邮箱地址不会被公开。 必填项已用 * 标注