目录
- [go run main.go](#go run main.go)
- [go run .](#go run .)
- 示例
go run main.go
- 功能 :只编译和运行指定的文件(
main.go
),忽略同目录下的其他文件。 - 适用场景 :
- 当你只需要运行一个独立的文件,且该文件不依赖其他文件时。
- 适合单文件程序或简单的脚本。
- 限制 :
- 如果
main.go
依赖fun.go
中的函数或变量,go run main.go
会报错,因为fun.go
没有被编译。 - 无法正确处理多文件项目中的依赖关系。
- 如果
go run .
- 功能 :编译并运行当前目录下的所有
.go
文件。 - 适用场景 :
- 适用于多文件项目,尤其是当多个文件之间存在依赖关系时。
- 确保所有相关文件都被编译和链接。
- 优点 :
- 能够正确处理文件之间的依赖关系。
- 更适合实际的项目开发,尤其是模块化开发。
示例

如图,在文件夹open_telemetry中有两个go文件:server1.go和roll.go,且package都是main。
运行go run server1.go
时,会报错roll方法找不到,因为此时只编译了server1.go文件。
运行go run .
时,服务正常启动,因为此时open_telemetry下的所有文件都被编译了