介绍
在本实验中,我们将正式开始学习 Go 编程。我们将涵盖基本概念,并自己完成一个简单的 Go 程序。
知识点:
- 标准输出语句
- 代码结构
- 运行程序
fmt包中的常用函数
💡 第一个 Go 程序
让我们从创建第一个 Go 程序开始。右键点击侧边栏,在你的项目文件夹中创建一个名为 helloWorld.go 的新文件。

注意:我们推荐使用 WebIDE(类似 VS Code)以获得更好的体验。了解更多关于 WebIDE 使用指南的内容,请点击这里。
你也可以使用 touch 命令创建一个新文件:
touch helloWorld.go
现在,打开文件并编写以下代码:
package main
import "fmt"
func main() {
fmt.Println("hello, world")
}
第一行 package main 表示这个程序属于 main 包。第二行 import "fmt" 导入了 Go 的 fmt 包,它允许我们格式化文本的输入和输出。main 函数是程序开始执行的地方,在它内部,fmt.Println("hello, world") 会将 hello, world 打印到终端。
要运行程序,打开终端并输入以下命令:
go run helloWorld.go
如果一切设置正确,你应该会看到输出:
hello, world
这是一个简单的 "Hello World" 程序。现在,让我们逐行解释代码和操作。
程序结构与语法
在 Go 中,包(package)是代码管理的基本单位。每个 Go 程序都以 package 声明开始。在本例中,package main 告诉 Go 这段代码是主程序的一部分,将会被执行。
import "fmt" 语句导入了 Go 的 fmt 包,该包用于输入和输出。Go 拥有丰富的标准库,这使得我们可以轻松完成许多任务。fmt 包用于格式化文本输出,正如我们在上一步中看到的那样。
接下来,我们定义了 main 函数:
func main() {
}
在 Go 中,所有函数都必须以 func 开头。注意,左大括号 { 被放置在同一行的末尾。这是 Go 的惯例,与其他编程语言不同,其他语言可能会将左大括号放在新的一行。
如果你错误地将左大括号放在新的一行,像这样:
func main()
{
}
你会得到一个编译错误:
$ go run helloWorld.go
### command-line-arguments
./helloWorld.go:7:1: syntax error: unexpected semicolon or newline before {
这是因为 Go 期望左大括号直接放在同一行。
程序中的关键语句是 fmt.Println("hello, world"),它调用了 fmt 包的 Println 函数,将字符串 "hello, world" 打印到控制台。该函数会自动在字符串末尾添加一个换行符。
运行程序
Go 是一种编译型语言,但当我们使用 go run 命令时,Go 会先编译源代码,然后运行生成的可执行文件。因此,以下命令:
go run helloWorld.go
等价于运行以下两条命令:
## 编译程序
go build helloWorld.go
## 执行编译后的程序
./helloWorld
为了尝试一个新的例子,让我们修改程序以向其他 Gopher 打招呼。创建一个名为 helloGopher.go 的新文件,并将代码替换为:
你可以使用 touch 命令创建一个新文件:
touch helloGopher.go
package main
import "fmt"
func main() {
fmt.Println("hello Gopher.")
fmt.Println("hello Gopher.")
fmt.Println("hello Gopher.")
}
现在,我们不再使用 go run,而是使用 go build 来编译程序,然后运行生成的可执行文件:
## 编译程序
go build helloGopher.go
## 运行编译后的可执行文件
./helloGopher
这将输出:
hello Gopher.
hello Gopher.
hello Gopher.
fmt 包中的常用函数
在第一步中,我们使用了 fmt 包中的 Println() 函数来打印输出。fmt 包是 Go 中最常用的包之一,提供了多种格式化输出的函数。
以下是三种常见的输出函数:
fmt.Print()– 输出文本,不换行。fmt.Println()– 输出文本并换行。fmt.Printf()– 输出格式化文本。
让我们更详细地探索这些函数。创建一个名为 fmt.go 的新文件,并输入以下代码:
package main
import "fmt"
func main() {
// 标准输出
fmt.Print("hello")
fmt.Print("world")
// Println 在标准输出后添加换行符
fmt.Println()
fmt.Println("labex")
// Printf 提供格式化输出
fmt.Printf("%s\n", "London")
}
使用 go run 命令运行程序:
go run fmt.go
解释:
fmt.Print("hello")和fmt.Print("world")在同一行输出文本,因为Print不会添加换行符。fmt.Println()输出一个换行符以分隔行。fmt.Printf("%s\n", "London")使用%s占位符格式化输出字符串 "London"。
以下是这些函数的快速比较:
| 函数 | 标准输出 | 换行符 | 格式化输出 |
|---|---|---|---|
Print |
√ | × | × |
Println |
√ | √ | × |
Printf |
× | × | √ |
fmt 包还提供了其他用于读取输入、错误处理等的函数,这些将在后续的练习中介绍。
总结
在本实验中,我们编写了第一个 Go 程序,学习了 Go 程序的结构,并探索了 fmt 包中用于输出的基本函数。我们还练习了运行 Go 程序,并了解了 Print、Println 和 Printf 之间的区别。现在你应该对 Go 的语法和程序执行有了基本的理解。



