朱莉娅:将参数传递给 `include("file.jl")`

A.Y*_*iha 5 parameter-passing julia

我想知道是否可以将参数传递给include("file.jl"). 例如,我们解析 中的 ARGSfile.jl并在那里使用它们。类似于我们在命令行中传递参数的操作。

Dan*_*etz 4

重新分配ARGS以使其file.jl认为它收到了参数是可行的,但会导致警告(因为它覆盖了Base.ARGS)。更好的方法也许是在使用inisdefined之前检查不同的参数源。ARGSfile.jl

例如,文件main.jl将是:

newARGS = String["adios","amigos"]
include("file.jl")
Run Code Online (Sandbox Code Playgroud)

并且file.jl将是:

localARGS = isdefined(:newARGS) ? newARGS : ARGS
@show localARGS
Run Code Online (Sandbox Code Playgroud)

现在:

$ julia file.jl hello world
localARGS = String["hello","world"]

$ julia main.jl 
localARGS = String["adios","amigos"]
Run Code Online (Sandbox Code Playgroud)

这也允许通过多个层次的包容性进行更深入的沟通。