如何在 juli 中运行构造的命令

  • 本文关键字:命令 运行 juli julia
  • 更新时间 :
  • 英文 :


我在数组中有包名称,试图在deps.jl中使用以下代码执行"使用":

#! /opt/julia/julia-1.1.0/bin/Julia
packages =["MbedTLS","HTTP"]
for package in packages
try
("using "package) 
cath err
println("$err")
end
end

执行 $/home/julia/deps.jl 会抛出错误"无法并列字符串文字"。请帮帮我!

您可以使用符号和@eval宏来执行此操作。 @eval宏在顶层运行给定的表达式。

packages = [:MbedTLS, :HTTP] # use symbols instead of strings
for package in packages
    try
        @eval(using $package) 
    catch err
        println("$err")
    end
end

如果出于某种原因需要使用字符串,可以先将其转换为Symbol,然后对结果使用@eval

packages = ["MbedTLS", "HTTP"]
for package in packages
    try
        @eval(using $(Symbol(package))) 
    catch err
        println("$err")
    end
end

"using "package尝试创建字符串文字"using"以将其并列到变量package(即像x=3; b = 5x中的5(。字符串文本并置是 Julia 1.0 中的语法错误。即使这不是语法错误,我也不记得它会用于运行表达式。

请参阅 Julia

文档中的元编程部分,了解有关从 Julia 中创建和操作代码的更多信息。

最新更新