Hello World
学习任何一门编程语言都是从输入一个经典的例子 Hello World 开始的,下面使用 Go 语言来输出的 Hello World :
package main
import "fmt"
func main() {
fmt.Println("Hello, World")
}
这五行代码就构成了一个完整的 Go 程序,是不是非常简单?现在我运行这段代码,看看输出的结果,方法是打开终端输入以下命令,然后回车,如下所示:
其中 go run hello.go 是我输入的命令,回车后看到的 "Hello World" 是 Go 程序输出的结果。
代码中的 go 是一个 Go 语言开发工具包提供的命令,它和你平时常用的 ls 命令一样都是可执行的命令。它可以帮助你运行 Go 语言代码,并进行编译,生成可执行的二进制文件等。
run 在这里是 go 命令的子命令,表示要运行 Go 语言代码的意思。最后的 hello.go 就是我写的 Go 语言代码文件了。也就是说,整个 go run hello.go 表示要运行当前文件夹下 hello.go 里的 Go 语言代码。
程序结构分析
要让一个 Go 语言程序成功运行起来,只需要 package main 和 main 函数这两个核心部分, package main 代表的是一个可运行的应用程序,而 main 函数则是这个应用程序的主入口。
在 "Hello World" 这个简单的示例中,包含了一个 Go 语言程序运行的最基本的核心结构。以此为例,来逐一了解程序的结构和 Go 语言的核心概念。
- 第一行的 package main 代表当前的 hello.go 文件属于哪个包,其中 package 是 Go 语言声明包的关键字,main 是要声明的包名。在 Go 语言中 main 包是一个特殊的包,代表你的 Go 语言项目是一个可运行的应用程序,而不是一个被其他项目引用的库。
- 第二行的 import "fmt" 是导入一个 fmt 包,其中 import 是 Go 语言的关键字,表示导入包的意思,这里我导入的是 fmt 包,导入的目的是要使用它。
- 第三行的 func main() 是定义了一个函数,其中 func 是 Go 语言的关键字,表示要定义一个函数或者方法的意思,main 是函数名,() 空括号表示这个 main 函数不接受任何参数。在 Go 语言中 main 函数是一个特殊的函数,它代表整个程序的入口,也就是程序在运行的时候,会先调用 main 函数,然后通过 main 函数再调用其他函数,达到实现项目业务需求的目的。
- 第四行的 fmt.Println("Hello World") 是通过 fmt 包的 Println 函数打印 "Hello World" 这段文本。其中 fmt 是刚刚导入的包,要想使用一个包,必须先导入。Println 函数是属于包 fmt 的函数,这里我需要它打印输出一段文本,也就是 "Hello, World" 。
- 第五行的大括号 } 表示 main 函数体的结束。现在整个代码片段已经分析完了,运行就可以看到 "Hello, World" 结果的输出。
从以上分析来看,Go 语言的代码是非常简洁、完整的核心程序,只需要 package、import、func main 这些核心概念就可以实现。
注意
需要注意的是 { 不能单独放在一行,所以以下代码在运行时会产生错误:
package main
import "fmt"
func main()
{ // 错误,{ 不能在单独的行上
fmt.Println("Hello, World!")
}
错误如下图所示: