在REPL模式下没有传递参数的方法吗?

时间:2018-10-21 02:29:34

标签: julia

我无法从REPL运行我的程序。 当我尝试这个:

julia> ARGS = ["hello", "world"] include("test.jl")
error: ERROR: syntax: extra token "include" after end of expression

如何使其变成2行: 如果我尝试先运行:

ARGS = ["hello", "world"] 
Error: ERROR: cannot assign variable Base.ARGS from module main

但是命令行可以正常工作

我尝试过:

julia> include("test.jl", ARGS = ["hello", "world"])
julia> include("test.jl","hello", "world")

他们都没有工作。

1 个答案:

答案 0 :(得分:3)

ARGS,当在REPL上运行Julia时,加载到Main的String命令行参数数组是只读的。因此,您无法重新分配它。

但是,因为Main.ARGS与另一个模块的ARGS不同,所以您可以在REPL处创建一个新模块,并通过include在模块的名称空间中运行程序。

假设test.jl包含单行

println(prod(ARGS))

,因此您可以在REPL命令行中键入此内容(包括使用Enter键):

julia> module test
       ARGS=["hello", "world"]
       include("test.jl")
       end

输出应为:

helloworld
Main.test