Go 语言入门

开始使用 Go


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

  • 安装 Go(如果你还没有)。
  • 编写一些简单的“Hello, world”代码。
  • 使用该go命令运行您的代码。
  • 使用 Go 包发现工具来查找可以在自己的代码中使用的包。
  • 调用外部模块的函数。

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

先决条件

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

安装 Go

参考下载和安装步骤

写代码

开始写一个 Hello, World 示例。

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

    $ mkdir hello && cd hello
    
  2. 为您的代码启用依赖项跟踪。

    当您的代码导入其他模块中包含的包时,您可以通过代码自己的模块管理这些依赖项。该模块由一个 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
    
  3. 创建 hello.go 文件,并将下面的代码粘贴到文件中。

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

    在此代码中:

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

    $ go run .
    Hello, World!
    

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

    $ go help
    

调用外部包中的代码

当您需要您的代码来执行可能已由其他人实现的事情时,您可以寻找一个具有您可以在代码中使用的功能的包。

  1. 使用外部模块的功能使您的打印信息更有趣。

    • 访问 pkg.go.dev 并 搜索“quote”包
    • 在搜索结果中找到并单击该 rsc.io/quote 包(如果您看到 rsc.io/quote/v3,请暂时忽略它)。
    • Documentation部分的index下,记下您可以从代码中调用的函数列表。您将使用该 Go 函数。
    • 在此页面的顶部,请注意包 quote 包含在 rsc.io/quote 模块中。

    您可以使用 https://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. 添加新的模块要求和sums。

    Go 将添加 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 模块