Skip to content

Go 程序结构

在深入了解具体的语言特性之前,我们先来研究一下 Go 程序的基本结构。理解这个结构是编写任何 Go 应用程序的基础。

一个最小的、可运行的 Go 程序通常包含:

  • 包声明(Package Declaration): 定义文件所属的包。
  • 导入语句(Import Statements): 包含程序所需的其他包。
  • 函数(Functions): 执行特定任务的代码块。main 函数是特殊的。
  • (可选)变量、常量、类型: 在程序中使用的声明。
  • (可选)语句(Statements)和表达式(Expressions): 构成函数体的指令。
  • (可选)注释(Comments): 供人类读者理解的解释,编译器会忽略它们。

这是一个打印 “Hello, World!” 的简单代码示例:

// 1. 包声明
package main
// 2. 导入语句
import "fmt" // 导入标准格式化包
// 3. 主函数 - 程序从这里开始执行
func main() {
// 6. 注释(单行)
/*
6. 注释(多行)
程序演示了基本结构。
*/
// 5. 语句和表达式:调用 fmt 包中的 Println 函数
fmt.Println("Hello, World!")
}

我们来分解一下这些部分:

  1. package main:声明此文件属于 main 包。一个程序必须有一个 main 包,程序的执行从该包内的 main 函数开始。
  2. import "fmt":导入 fmt 包,它提供了格式化输入/输出(例如打印到控制台)的函数。你可以使用 import ("pkg1", "pkg2") 导入多个包。
  3. func main():定义 main 函数。这是可执行程序的入口点。程序运行时,花括号 {} 内的代码会被执行。
  4. // ... 和 /* ... */:这些是注释。单行注释以 // 开头。多行注释包含在 /* */ 中。编译器会忽略它们。
  5. fmt.Println("Hello, World!"):这是一个语句,它调用导入的 fmt 包中的 Println 函数。它将字符串 “Hello, World!” 打印到标准输出,并在后面加上一个换行符。
  6. 导出的名称(Exported Names): 注意 Println 以大写字母 ‘P’ 开头。在 Go 中,以大写字母开头的标识符(如函数名或变量名)是导出的(exported),这意味着它们可以被导入此包的其他包看到和使用。以小写字母开头的名称则是未导出的(unexported)(对于该包来说是私有的)。

按照以下步骤保存、编译和运行你的 Go 代码:

  1. 打开一个文本编辑器(如 VS Code, GoLand, Vim 等),粘贴上面的代码。
  2. 将文件保存为 .go 扩展名,例如 hello.go。
  3. 打开你的终端或命令行提示符。
  4. 使用 cd 命令导航到保存 hello.go 的目录。
  5. 直接使用 go run 运行程序:输入 go run hello.go 并按回车键。
  6. (或者)使用 go build 构建可执行文件:输入 go build hello.go。这会创建一个可执行文件(例如 hello 或 hello.exe)。然后直接运行它:./hello(在 Linux/macOS 上)或 hello.exe(在 Windows 上)。

如果没有错误,你应该会看到以下输出:

$ go run hello.go
Hello, World!

确保 Go 工具链已安装并配置到系统的 PATH 环境变量中。

提示:使用 go fmt <filename.go> 或 go fmt . 来自动根据标准规范格式化你的 Go 代码。