当我调试Julia代码时,我经常遇到以下情况:
我怀疑我的代码深处的某个变量(通常是一个大矩阵)不是我想要的,我想仔细看看它。理想情况下,我想在REPL中访问它,以便我可以使用它。
访问变量的几个函数层的最佳实践是什么,而不是将它们传递给链,即更改函数返回?
示例:
function multiply(u)
v = 2*u
w = subtract(v)
return w
end
function subtract(x)
i = x-5
t = 10
return i-3t
end
multiply(10)
如果我运行multiply()
并怀疑中间变量i
不是我认为应该是的那样,我将如何在REPL中访问它?
我知道我可以编写一个测试函数并测试i
是否具有subtract()
内的预期属性,但有时使用REPL会更快。
答案 0 :(得分:2)
在任何编程语言中都是如此。您可以使用ASTInterpreter2(具有良好的Juno集成)等调试工具来逐步执行代码并在当前环境中使用交互式REPL,或者您可以使用println调试,在那里使用@show
命令运行代码打印出值。