You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Julia是否存在类似Rust中dbg!宏的等效调试工具?

Julia 中类似 Rust dbg! 宏的调试工具

你可以用以下几种方式实现类似 Rust dbg! 的调试效果,同时解决「仅显示最后一个无分号语句结果」的问题:

内置方案:@show 宏

这是Julia内置最便捷的替代工具,会直接打印表达式本身和对应的结果,每个调用都会输出,不会只显示最后一个。示例:

function main()
    @show 1 + 2
    @show 3 * 4
end

main()

输出结果:

1 + 2 = 3
3 * 4 = 12

默认不显示文件名和行号,如果需要位置信息,可以结合日志模块实现。

带位置信息的调试:Logging 模块

通过配置Logging模块的日志格式,让输出包含文件名和行号,更贴近Rust dbg!的输出风格:

using Logging

# 配置日志,让输出带上文件和行号信息
global_logger(ConsoleLogger(stderr, Debug; meta_formatter=(_, _, _, loc) -> "[$(loc.file):$(loc.line)] "))

function main()
    @debug 1 + 2
    @debug 3 * 4
end

main()

输出类似:

[Main.jl:8] 1 + 2 = 3
[Main.jl:9] 3 * 4 = 12

第三方包增强:DbgMacros.jl

如果想要完全贴近Rust dbg!的体验,可以安装DbgMacros.jl包,它的@dbg宏会自动输出位置信息、表达式和结果:

# 先安装包:using Pkg; Pkg.add("DbgMacros")
using DbgMacros

function main()
    @dbg 1 + 2
    @dbg 3 * 4
end

main()

输出结果:

[Main.jl:6] 1 + 2 = 3
[Main.jl:7] 3 * 4 = 12

另外,要是你只是想让多个表达式的结果都显示(类似MATLAB的行为),除了上述工具,也可以把多个表达式用逗号分隔放在函数最后一行,不过@show系列工具显然更灵活,能按需输出指定表达式的结果。

内容的提问来源于stack exchange,提问作者mcmuffin6o

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.12 07:28:24