检查juliav1.1语法正确性的parse和eval替代方法
Julia是动态键入的,某些错误仅在执行期间发生 例如:检查juliav1.1语法正确性的parse和eval替代方法,julia,Julia,Julia是动态键入的,某些错误仅在执行期间发生 例如: julia> function foo() a 5 end foo (generic function with 1 method) julia> foo() ERROR: UndefVarError: a not defined Stacktrace: [1] foo() at ./REPL[1]:2 [2] top-level scope at none:0 julia&g
julia> function foo()
a
5
end
foo (generic function with 1 method)
julia> foo()
ERROR: UndefVarError: a not defined
Stacktrace:
[1] foo() at ./REPL[1]:2
[2] top-level scope at none:0
julia>
将parse与eval结合使用时的相同行为:
julia> eval(Meta.parse("function foo()
a
5
end"))
foo (generic function with 1 method)
但是,执行此操作时会抛出一个错误:
julia> foo()
ERROR: UndefVarError: a not defined
Stacktrace:
[1] foo() at ./none:2
[2] top-level scope at none:0
是否存在任何标准设施来检查此类错误?或者是否存在任何适合此任务的包?具有可以检测未定义变量使用情况的,如您的示例中所示
还有这个linter,尽管我不确定它是否是juliav1.x版的最新版本。。但是,正如您所说,对于Julia的最新版本,Lint.jl似乎存在一些问题