目录文件
先创建目录结构golang-project/src/go-core/main
以及go的代码文件main.go

代码
go
package main
import "fmt"
func main() {
fmt.Println("Hello, World!")
}
package main
:
-
- 在 Go 语言里,
package
声明用于指定当前文件所属的包。package main
表明这是一个可执行程序的包,每个可执行的 Go 程序都必须有一个main包。
- 在 Go 语言里,
import "fmt"
:
-
import
关键字用于导入外部包。这里导入了标准库中的fmt
包,该包提供了格式化输入输出的功能,像Println
这类函数就包含在其中。
func main()
:
-
func
是定义函数的关键字,main
是函数名。在 Go 语言中,main
函数是程序的入口点,当运行这个可执行程序时,会自动从main
函数开始执行。此函数没有参数和返回值。
fmt.Println("Hello, World!")
:
-
- 调用
fmt
包里的Println
函数,该函数的作用是在控制台打印传入的字符串"Hello, World!"
,并在末尾添加一个换行符。
- 调用
编译执行
方式一
针对.go
文件,执行
go
go run main.go

输出结果,成功运行
方式二
先编译文件,执行命令
go
go build main.go
执行后生成一个可执行文件,最开始目录里面的main
文件
然后执行该可执行文件, mac下运行
bash
./main
执行结果如图

go run和go build
go run
和 go build
都用于处理程序的编译和运行,对比如下:
对比
go run
- 功能 :直接编译并运行 Go 程序,无需手动生成可执行文件。
- 执行过程:
-
- 编译源代码(包括依赖包),生成临时可执行文件。
- 运行临时可执行文件。
- 执行完毕后,自动删除临时文件,不保留可执行文件。
- 适用场景:
-
- 开发阶段快速测试代码(无需手动编译,一步到位)。
- 运行单个
.go
文件(如脚本类程序)。
go build
- 功能 :编译 Go 程序,生成可执行文件 (二进制文件),不自动运行。
- 执行过程:
-
- 编译源代码及依赖包,生成目标平台的可执行文件。
- 将可执行文件保存在当前目录(或通过
-o
指定路径)。
- 适用场景:
-
- 生成最终可部署的二进制文件(如发布到生产环境)。
- 需要多次运行程序时(避免重复编译,直接执行生成的二进制文件更高效)。
总结
- 开发阶段 :用
go run
快速验证代码(无需手动处理编译产物)。 - 发布阶段 :用
go build
生成可执行文件,便于部署和分发(尤其是跨平台场景)。
补充
go build编译后生成与包名同名的可执行文件, 可通过 -o
选项自定义输出文件名和路径
bash
go build -o myapp # 生成名为 myapp 的可执行文件
go build -o ./bin/app # 生成到指定目录