作者简介:大数据领域优质创作者、CSDN博客专家 、阿里云博客专家、华为云课堂认证讲师、华为云社区云享专家、坚果派社区成员、具有10余年横向开发经验,全国教师技能大赛获奖教师,现从事于大学计算机领域教育工作。 主要内容:人工智能与大数据、Java、Python、C#、PHP、ASP.NET、ArkTS、FAQ、简历模板、学习资料、面试题库、就业指导等。 初心目标:持续输出,为技术人创造更多的价值。
// Package main 是程序的入口包
package main
// 导入fmt包,用于格式化输入输出
import "fmt"
// main函数是程序的入口点
// 程序启动时会自动调用main函数
func main() {
// 使用fmt.Println函数在控制台打印字符串
// 输出内容为:"Hello, World!"
fmt.Println("Hello, World!")
}
1. 包声明
每个Go文件都必须属于一个包 可执行程序必须是main包 包名在文件第一行声明
2. 导入包
使用import导入需要的包 可以单行导入或使用括号批量导入 未使用的导入包会报错
3. 程序入口
main包中必须有main函数 main函数是程序的入口点 不接受参数,不返回值
4. 执行流程
程序启动 → 初始化包 → 执行main函数 按顺序执行main函数中的代码 main函数结束后程序退出
对比项 | go run命令 | go build命令 |
---|---|---|
基本功能 | go run 命令用于编译并直接运行 Go 程序,它会在内部完成编译和执行两个步骤,将编译后的可执行文件存放在临时目录,执行结束后会自动清理临时文件。 | go build 命令用于编译 Go 程序的源代码文件,生成可执行文件。这个可执行文件可以在后续随时运行,而不需要再次编译。 |
使用语法 | go run [build flags] [packages] 示例:go run main.go,如果有多个文件,也可以 go run file1.go file2.go | go build [build flags] [packages] 示例:go build main.go,如果是项目目录,直接 go build 会编译当前目录下的所有 Go 文件生成可执行文件 |
适用场景 | 适合快速验证代码逻辑,在开发过程中进行代码调试和测试时非常方便。当你编写了一段简单的代码,想快速看到运行结果时,使用 go run 可以节省时间。 | 适合将代码部署到生产环境或分发给其他用户。生成的可执行文件可以独立运行,不依赖于 Go 开发环境,方便在不同的机器上部署和使用。 |
输出结果 | 程序的运行结果会直接显示在终端中,没有可执行文件被保留在当前目录。 | 在当前目录下生成一个可执行文件(在 Windows 系统上是 .exe 文件,在 Linux 和 macOS 系统上是无扩展名的可执行文件),需要手动运行该可执行文件来查看程序的输出结果。 |
编译优化 | go run 主要侧重于快速执行,不会进行过多的编译优化,以提高执行速度。 | go build 可以通过设置不同的编译标志(如 -ldflags 进行链接优化)来进行编译优化,生成更高效的可执行文件。 |
依赖处理 | go run 会自动处理代码的依赖关系,确保所有依赖的包都被正确编译和加载。 | go build 同样会处理依赖关系,并且可以通过 go mod tidy 等命令来管理和清理依赖,确保生成的可执行文件包含所有必要的依赖。 |
go bulid main.go
将main.go编译成main.exe文件
main.exe
直接运行main.exe文件即可。
可以看到对应的效果。