检查juliav1.1语法正确性的parse和eval替代方法

检查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是动态键入的,某些错误仅在执行期间发生

例如:

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似乎存在一些问题