介绍
在本实验中,我们将正式开始学习 Go 编程。我们将涵盖基本概念,并自己完成一个简单的 Go 程序。
知识点:
- 标准输出语句
- 代码结构
- 运行程序
fmt
包中的常用函数
在本实验中,我们将正式开始学习 Go 编程。我们将涵盖基本概念,并自己完成一个简单的 Go 程序。
知识点:
fmt
包中的常用函数让我们从创建第一个 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 的语法和程序执行有了基本的理解。