我想知道是否可以向include("file.jl")
传递参数。例如,我们可以在file.jl
中解析ARGS并将它们用于其中。类似于在命令行中通过传递参数所做的操作。
我想知道是否可以向include("file.jl")
传递参数。例如,我们可以在file.jl
中解析ARGS并将它们用于其中。类似于在命令行中通过传递参数所做的操作。
ARGS
,让file.jl
认为它收到了参数是可以的,但会导致警告(因为它覆盖了Base.ARGS
)。更好的方法可能是在使用file.jl
中的ARGS
之前,使用isdefined
检查不同参数源。main.jl
如下:newARGS = String["adios","amigos"]
include("file.jl")
而 file.jl
将是:
localARGS = isdefined(:newARGS) ? newARGS : ARGS
@show localARGS
现在:
$ julia file.jl hello world
localARGS = String["hello","world"]
$ julia main.jl
localARGS = String["adios","amigos"]
include("file.jl")
,但可能已经分配了变量localARGS,例如在包含其他文件时? - Jake Stevens-Haas将代码包含进来与将该代码段复制到“包含者”代码中具有相同的效果。如果所包含的代码根据多个“参数”而有不同的运行方式,则这很可能是您必须使用函数或模块封装该代码的强烈提示。此外,在Julia中,“原始”代码 tend to be faster inside functions Performance Tips。
include("....")
运行多个文件,并且其中一些需要我想要传递的一些参数。例如,理想情况下,语义上意味着include("file1.jl", arg1, arg2)
,并且file1.jl
使用这些arg1
和arg2
。例如,想象一下这些参数的值是在调用include()
的模块内部创建的。 - A.Yazdiha