第一个Go程序
本文档将指导您创建并运行第一个Go程序,学习Go项目的基本结构和编译运行方法。
📋 目录
项目初始化
创建项目目录
首先创建一个新的项目目录:
# 创建项目目录
mkdir hello
cd hello初始化Go模块
使用Go Modules管理依赖(Go 1.11+推荐方式):
go mod init hello这个命令会创建一个go.mod文件,内容如下:
module hello
go 1.21go.mod文件作用:
- 定义模块名称和Go版本
- 管理项目依赖
- 支持版本控制和依赖解析
编写Hello World
创建主程序文件
在项目目录中创建main.go文件:
package main // 声明main包,表明这是一个可执行程序
import "fmt" // 导入标准库fmt包,用于格式化输出
func main() { // main函数是程序的入口点
fmt.Println("Hello, World!") // 输出文本到控制台
}代码结构说明
- 包声明:
package main表示这是一个可执行程序 - 导入语句:
import "fmt"引入格式化输出包 - 主函数:
func main()是程序执行的入口点 - 输出语句:
fmt.Println()输出文本并换行
开发工具提示
💡 VS Code用户:如果右下角弹出Go扩展安装提示,请点击"Install All"安装所有推荐插件,这将提供语法高亮、代码补全、调试等功能。
编译
go build命令表示将源代码编译成可执行文件。
在hello目录下执行:
go build
或者在其他目录执行以下命令:
go build hello
go编译器会去 GOPATH的src目录下查找你要编译的hello项目
编译得到的可执行文件会保存在执行编译命令的当前目录下,如果是windows平台会在当前目录下找到hello.exe可执行文件。
可在终端直接执行该hello.exe文件:
c:\desktop\hello>hello.exe
Hello World!
我们还可以使用-o参数来指定编译后得到的可执行文件的名字。
go build -o heiheihei.exe
Windows下VSCode切换cmd.exe作为默认终端
如果你打开VS Code的终端界面出现如下图场景(注意观察红框圈中部分),那么你的VS Code此时正使用powershell作为默认终端:

十分推荐你按照下面的步骤,选择cmd.exe作为默认的终端工具:

此时,VS Code正上方中间位置会弹出如下界面,参照下图挪动鼠标使光标选中后缀为cmd.exe的那一个,然后点击鼠标左键。
最后重启VS Code中已经打开的终端或者直接重启VS Code就可以了。

如果没有出现下拉三角,也没有关系,按下Ctrl+Shift+P,VS Code正上方会出现一个框,你按照下图输入shell,然后点击指定选项即可出现上面的界面了。

go run
go run main.go也可以执行程序,该命令本质上也是先编译再执行。
go install
go install表示安装的意思,它先编译源代码得到可执行文件,然后将可执行文件移动到GOPATH的bin目录下。因为我们的环境变量中配置了GOPATH下的bin目录,所以我们就可以在任意地方直接执行可执行文件了。
跨平台编译
默认我们go build的可执行文件都是当前操作系统可执行的文件,如果我想在windows下编译一个linux下可执行文件,那需要怎么做呢?
只需要指定目标操作系统的平台和处理器架构即可,例如Windows平台cmd下按如下方式指定环境变量。
SET CGO_ENABLED=0 // 禁用CGO
SET GOOS=linux // 目标平台是linux
SET GOARCH=amd64 // 目标处理器架构是amd64
注意:如果你使用的是PowerShell终端,那么设置环境变量的语法为$ENV:CGO_ENABLED=0。
然后再执行go build命令,得到的就是能够在Linux平台运行的可执行文件了。
Mac 下编译 Linux 和 Windows平台 64位 可执行程序:
CGO_ENABLED=0 GOOS=linux GOARCH=amd64 go build
CGO_ENABLED=0 GOOS=windows GOARCH=amd64 go build
Linux 下编译 Mac 和 Windows 平台64位可执行程序:
CGO_ENABLED=0 GOOS=darwin GOARCH=amd64 go build
CGO_ENABLED=0 GOOS=windows GOARCH=amd64 go build
Windows下编译Mac平台64位可执行程序:
SET CGO_ENABLED=0
SET GOOS=darwin
SET GOARCH=amd64
go build
现在,开启你的Go语言学习之旅吧。人生苦短,let’s Go.