解析和评估以检查Julia v 1.1的语法正确性的替代方法

时间:2019-06-16 14:09:21

标签: 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>

将解析与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

是否存在检查这些类型错误的标准设施?还是有适合该任务的软件包?

1 个答案:

答案 0 :(得分:1)

VS Code Julia extension有一个integrated linter,可以检测未定义变量的使用,如您的示例。

还有一个Lint.jl字样,虽然我不确定它是否是Julia v1.x的最新版本。