Repolode
ryboe

ryboe/q

Go 语言调试工具,用 q.Q(变量) 代替 fmt.Printf,输出美化后写入临时目录日志文件。

Star
1,542
Fork
69
未关闭 Issue
2
最近提交
13天前

这是什么?

q 是一个用于 Go 语言的小型调试包,适合用打印语句排查问题。调用 q.Q 并传入变量或表达式,即可输出格式美化的结果,嵌套结构体也比 fmt.Printf 更容易查看。

输出不会写到标准输出,而是追加到 $TMPDIR/q 文件中。项目建议开一个终端持续 tail 该文件,并提供了 qq 和 rmqq 两个 shell 函数来查看或清空日志。q.Q 可以安全地在并发场景中调用。

项目还给出了 VS Code、Zed、Sublime Text、GoLand、Emacs 以及 Vim/NeoVim 的代码片段配置,方便快速插入 q.Q 调用。它是 Python 版 q 模块的 Go 移植版本。

核心功能

  • 01对传入 q.Q 的变量和表达式进行美化打印。
  • 02输出写入 $TMPDIR/q 文件,而不是标准输出。
  • 03提供 qq 和 rmqq 两个 shell 函数,用于查看或清空日志。
  • 04q.Q 可安全用于并发调用。
  • 05提供 VS Code、Zed、Sublime Text、GoLand、Emacs、Vim 的代码片段。

适用场景

  • 在 Go 调试时快速查看变量值和嵌套结构体。
  • 在不干扰程序标准输出的前提下追踪运行状态。

快速上手

  1. 1

    将仓库克隆到你的 GOPATH 中

    git clone https://github.com/ryboe/q "$(go env GOPATH)"/src/q
  2. 2

    在代码中导入该包,并用 q.Q 传入变量

使用前须知

  • 输出写入日志文件,因此需要在另一个终端中查看 $TMPDIR/q 才能看到结果。

收录于专题

标签

常见问题

q 是什么?
Go 语言调试工具,用 q.Q(变量) 代替 fmt.Printf,输出美化后写入临时目录日志文件。 q 是一个用于 Go 语言的小型调试包,适合用打印语句排查问题。调用 q.Q 并传入变量或表达式,即可输出格式美化的结果,嵌套结构体也比 fmt.Printf 更容易查看。
q 可以免费使用吗?用的什么许可证?
q 以 MIT 许可证开源。用于商业产品前,请先确认许可证条款。
q 还在维护吗?
活跃维护中。q 最近一次提交是在 2026年10月25日。
q 适合用来做什么?
在 Go 调试时快速查看变量值和嵌套结构体。 在不干扰程序标准输出的前提下追踪运行状态。
q 怎么安装和运行?
将仓库克隆到你的 GOPATH 中: git clone https://github.com/ryboe/q "$(go env GOPATH)"/src/q 在代码中导入该包,并用 q.Q 传入变量
在哪里获取 q?
源代码和安装说明在 GitHub 上:https://github.com/ryboe/q

概要由 AI 根据项目 README 生成;GitHub 数据每日更新。

相关项目