1.2 运行 Hello World

写 Hello World 代码

1.打开 Terminal,进入用户主目录

Linux/Mac

cd

Windows

cd %HOMEPATH%

2.创建 hello 目录,存放你的第一个 Go 源代码文件

mkdir hello
cd hello

3.为你的代码开启依赖管理

当你的代码 import 其他模块提供的包(package)时,是通过你自己的代码模块来管理这些依赖的。go.mod 文件定义了你自己的代码模块,并且可以管理那些包含被导入的包的模块。go.mod 文件和你的代码一起,包含在你的代码库中。

要通过创建 g.mod 文件来开启依赖管理,可以运行 go mod init 命令,并提供模块名称(module name),模块名称也是模块的路径(module path)。

在实际的开发过程中,模块路径一般就是代码库的存放地址。例如,你的模块路径可能是 github.com/mymodule。如果你想公开你的模块给其他人使用,模块路径一定要是一个 Go tools 能够访问的地址。

为了简单,本示例使用 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 包,其中包含文本格式化输出函数,可以输出到控制台。这个包是标准库(standard library)中的包,标准库已经和 Go 一起安装到了你的电脑中。
  • 实现一个 main 函数,并输出一段消息到控制台。当你运行 main 包时,默认会从 main 方法开始执行。

6.运行代码

go run .
# 输出
# Hello, World!

go run 是运行代码的命令,通过下面的命令可以查看 go 命令列表:

go help

调用其他模块中的代码

当可能已经有别人实现了你要的功能时,你可以尝试检索一下可以在自己的代码中使用的包。

1.通过其他模块的函数让你的输出消息更有趣 1.访问 pkg.go.dev,然后搜索 "quote" 包 2.在搜索结果中找到并点击 rsc.io/quote/v4 包 3.在文档(Documentation)部分,索引(Index)下方,注意下你可以使用的函数列表。你会使用到其中的 Go 函数。 4.在页面上方,可以看到 quote 包

你可以通过 pkg.go.dev 网站检索已经公开发布的模块和包,然后在自己的代码中使用其中的函数。包会和模块一起公开发布,如 rsc.io/quote/v4,别人可以直接使用。模块会随着新版本的发布而改进,你可以更新代码使用新版本的模块。

2.在代码中导入 rsc.io/quote/v4 包,并调用它的 Go 函数。

按照下面的 diff 提示修改你的代码:

package main

import "fmt"

+ import "rsc.io/quote/v4"
+
func main() {
-    fmt.Println("Hello, World!")
+    fmt.Println(quote.Go())
}

3.添加新的模块依赖

Go 会在 go.mod 中声明 quote 模块为一个依赖,并创建 go.sum 文件。

go mod tidy
# 输出
# go: finding module for package rsc.io/quote/v4
# go: downloading rsc.io/quote/v4 v4.0.1
# go: found rsc.io/quote/v4 in rsc.io/quote/v4 v4.0.1
# go: downloading rsc.io/sampler v1.3.0
# go: downloading golang.org/x/text v0.0.0-20170915032832-14c0d48ead0c

4.运行代码查看 quote.Go 输出的消息

go run .
# 输出
# Don't communicate by sharing memory, share memory by communicating.

注意看,你的代码调用了 Go 函数,并且输出了一条关于通信的充满智慧的消息。

当你运行 go mod tidy 时,他定位并下载了 rsc.io/quote/v4 模块,其中包含了你导入的包。默认下载最新的版本 -- v4.0.1。