前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >go run command

go run command

作者头像
恋喵大鲤鱼
发布2024-07-29 08:34:49
1040
发布2024-07-29 08:34:49
举报
文章被收录于专栏:C/C++基础

1.简介

编译并运行 Go 程序。

2.格式

代码语言:javascript
复制
go run [build flags] [-exec xprog] package [arguments...]

run 编译并运行指定的 main 包。

通常,main 包被指定为来自单个目录的 .go 源文件列表,但它也可能是导入路径、文件系统路径或与单个已知包匹配的模式,例如go run .go run my/cmd

如果包参数有版本后缀(如 @latest 或 @v1.0.0),go run 将以模块感知模式构建程序,忽略当前目录或任何父目录中的 go.mod 文件(如果有)。这对于运行程序而不影响主模块的依赖项很有用。

如果包参数没有版本后缀,“go run”可能会在模块感知模式或 GOPATH 模式下运行,具体取决于 GO111MODULE 环境变量和 go.mod 文件是否存在。有关详细信息,请参阅“go help modules”。如果启用了模块感知模式,“go run”将在主模块的上下文中运行。

默认情况下,“go run”直接运行已编译的二进制文件:“a.out 参数…”。如果给出了 -exec 标志,“go run”将使用 xprog 调用二进制文件:

代码语言:javascript
复制
xprog a.out arguments...

如果未给出 -exec 标志,GOOS 或 GOARCH 与系统默认值不同,并且可以在当前搜索路径上找到名为 go_KaTeX parse error: Expected group after '_' at position 5: GOOS_̲GOARCH_exec 的程序,则“go run”使用该程序调用二进制文件,例如“go_js_wasm_exec a.out 参数…”。当模拟器或其他执行方法可用时,这允许执行交叉编译的程序。

默认情况下,“go run”会编译二进制文件而不生成调试器使用的信息,以减少构建时间。要将调试器信息包含在二进制文件中,请使用“go build”。

有关构建标志的更多信息,请参阅“go help build”。有关指定包的更多信息,请参阅“go help packages”。

3.示例

(1)运行单个源文件。

代码语言:javascript
复制
go run main.go

(2)运行多个源文件。

代码语言:javascript
复制
go run file1.go file2.go

(3)运行当前目录的 main 包。

代码语言:javascript
复制
go run .

(4)传递参数给程序。

代码语言:javascript
复制
go run . arg1 arg2

这条命令会编译并运行当前目录的 main 包,并将 arg1 和 arg2 作为程序的参数传递给它。

(6)指定包名运行。

代码语言:javascript
复制
go run github.com/user/project/pkg

这条命令会编译并运行指定包的入口文件。

(7)使用 build flags。

例如根据指定的 build tags 编译并运行 main.go,例如 -tags 参数可以指定 production 或 debug 等标签。

代码语言:javascript
复制
go run -tags production main.go

再比如不实际运行程序,而是显示编译过程中的详细信息,包括命令行参数和优化器的处理步骤。

代码语言:javascript
复制
go run -n main.go

4.注意事项

go run 仅用于临时运行代码,不会生成可执行文件。对于正式发布的程序,请使用 go build。

通过 go run 运行代码时,Go 语言会在运行前先执行编译操作,因此首次运行可能会花费一些时间。

5.常见用途

go run 是一个强大而灵活的工具,为开发者提供了便捷的代码测试和验证方式,同时也为调试和排查问题提供了方便。通过合理使用 go run,能更高效地进行 Go 语言开发。

常见用途:

  • 快速测试和验证代码逻辑。
  • 临时运行调试代码。
  • 运行单个文件或多个文件,避免生成不必要的可执行文件。
  • 通过传递参数测试不同的输入。

参考文献

Command Documentation go command documentation

本文参与 腾讯云自媒体同步曝光计划,分享自作者个人站点/博客。
原始发表:2024-07-28,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 1.简介
  • 2.格式
  • 3.示例
  • 4.注意事项
  • 5.常见用途
  • 参考文献
相关产品与服务
腾讯云服务器利旧
云服务器(Cloud Virtual Machine,CVM)提供安全可靠的弹性计算服务。 您可以实时扩展或缩减计算资源,适应变化的业务需求,并只需按实际使用的资源计费。使用 CVM 可以极大降低您的软硬件采购成本,简化 IT 运维工作。
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档