我有一个main.jl打印简单的“Hello world”字符串的脚本:
println("Hello world!")
但是,当尝试通过终端运行脚本时,如下所示:
julia> main.jl
我收到错误:
ERROR: type #main has no field jl
我在网上可以找到的所有信息都建议像我一样调用脚本来运行它。我确信我位于正确的目录中 - 我做错了什么?
sun*_*ica 11
您正在尝试从 Julia REPL 运行该文件(如julia> 行开头的提示所示)。在那里,您必须像@AndreWildberg 提到的那样使用include该文件。这将从文件中运行命令,就像您将它们输入到 REPL 中一样。
您在网上找到的信息可能是关于从“普通”终端(也称为 Linux 上的 bash 之类的控制台 shell)运行 Julia。在那里,运行julia main.jl将运行程序,尽管上面的 REPL 方法通常是使用 Julia 的首选方法。
(关于使用评论中询问的参数调用脚本的问题):
首先,我要提到这不是 Julia 脚本的常见工作流程。我已经编写 Julia 代码很多年了,我必须查找如何处理命令行参数,因为我从未在 Julia 中使用过它们:通常所做的是在文件中定义所需的函数,可能是一个main函数,在执行完之后include,您可以使用main参数调用该函数(或您想要尝试的任何函数)。
现在,如果您的脚本已经使用命令行参数(并且您不想更改它),您可以做的是ARGS在include语句之前分配给保存它们的变量 :
julia> push!(empty!(ARGS), "arg1")
1-element Vector{String}:
"arg1"
julia> include("main.jl")
Run Code Online (Sandbox Code Playgroud)
在这里,我们清空ARGS以确保以前的任何值都消失了,然后将我们想要的参数推入其中。您可以出于教育目的尝试此操作,但如果您是该语言的新手,我建议您学习并习惯涉及我上面提到的函数调用的更多 Julian 工作流程。
| 归档时间: |
|
| 查看次数: |
6060 次 |
| 最近记录: |