Go Playground 与 Hello World

Note

本文摘录自《Go语言趣学指南》第 1 章, 请访问 gpwgcn.com 以获取更多相关信息。

../_images/gpwgcn1.jpg

上手学习 Go 语言最快捷的方式就是使用 Go 游乐场 play.golang.org , 这个工具可以让你在无需安装任何软件的情况下直接编辑、运行和试验 Go 程序。 当你点击游乐场的运行按钮(Run)的时候, 游乐场就会在 Google 的服务器上编译并运行你输入的代码, 然后在屏幕上打印出代码的执行结果。


图 1-2 Go 游乐场

../_images/go-plg.jpg

当我们访问 Go 游乐场的时候将会看到以下代码,它作为学习 Go 语言的起点真的再合适不过了。


代码清单 1-1 与游乐场的初次见面: playground.go

package main                            // 声明本代码所属的包

import (
    "fmt"                               // 导入 fmt 包,使其可用(fmt是format的缩写)
)

func main() {                           // 声明一个名为 main 的函数
    fmt.Println("Hello, playground")    // 在屏幕上打印出“Hello, playground”
}

尽管这段代码非常简短,但它却引入了 packageimportfunc 这三个非常重要的关键字,这些保留关键字都有它们各自的特殊目的。

package 关键字声明了代码所属的包,在本例中这个包的名字就是 main 。 所有用 Go 编写的代码都会被组织成各式各样的包,并且每个包都对应一个单独的构想。 比如 Go 语言本身就提供了一个面向数学、压缩、加密、图像处理等领域的标准库。

package 关键字之后, 代码使用了 import 关键字来导入自己将要用到的包。 一个包可以包含任意数量的函数。 比如 math 包就提供了诸如 SinCosTanSqrt (平方根)等函数,而此处用到的 fmt 包则提供了用于格式化输入和输出的函数。 因为在屏幕上显示文本是一个非常常用的操作,所以 Go 使用了缩写 fmt 作为包名。 Gopher 们通常把这个包的名字读作“FŌŌMT!”,给人的感觉仿佛就像这个库是使用漫画书上的大爆炸字体撰写的一样。

func 关键字用于声明函数,在本例中这个函数的名字就是 main 。 每个函数的(body)都需要使用大括号 {} 实施包围,这样 Go 才能知道每个函数从何处开始,又在何处结束。

main 这一标识符(identifier)具有特殊意义。 当我们运行一个 Go 程序的时候,它总是从 main 包的 main 函数开始运行。 如果 main 不存在,那么 Go 编译器将报告一个错误,因为它无法得知程序应该从何处开始执行。

../_images/go-game.jpg

为了打印出一个由文本组成的,例子中的代码使用了 Println 函数(其中 ln 为行的英文字母 line 的缩写)。 每次用到被导入包中的某个函数时,我们都需要在函数的名字前面加上包的名字以及一个点号作为前缀。 比如代码清单中的 Println 函数前面就带有 fmt 以及一个点号作为前缀,这是因为 Println 函数就是由被导入的 fmt 包提供的。 Go 的这一特性可以让用户在阅读代码的时候立即弄清楚各个函数分别来源于哪个包。

当我们按下 Go 游乐场中的运行按钮时,代码中被引号包围的文本将输出至屏幕,最终使得文本“Hello, playground”出现在游乐场的输出区域中。 对于英语来说,即使是缺少一个逗号也有可能会让整个句子的意义变得完全不同。 同样地,标点符号对于编程语言来说也是至关重要的:比如 Go 就需要依靠引号、圆括号和大括号等符号来理解用户输入的代码。