Rust 有非常方便的
dbg!
宏:
fn main() {
dbg!(1 + 2);
}
上面的代码输出
[src/main.rs:2] 1 + 2 = 3
。
Julia 有类似的东西吗?
或者也许还有其他东西可以满足我的用例?我希望能够输出每个结果,但删除分号只会显示最后一个没有分号的结果(而不是像 MATLAB 这样的所有结果)。
有许多内置宏可以执行此操作:
julia> let x = 7
@show x^2
@info "cube of $x" x^3
@warn "minus" -x maxlog=3
end
x ^ 2 = 49
┌ Info: cube of 7
└ x ^ 3 = 343
┌ Warning: minus
│ -x = -7
└ @ Main REPL[42]:4
第一个只是打印到标准输出(参见例如
@macroexpand @show x
),宏 @info
和 @warn
使用 Logging 模块,该模块具有各种更复杂的功能,包括抑制某些打印输出。 @warn
和 @error
打印调用站点的详细信息,(如@BallpointBen
提及)也可以直接从特殊宏 @__MODULE__
、@__FILE__
和 @__LINE__
获得。