julia - 如何在 Julia 中运行构造命令?
问题描述
我在数组中有包名称,尝试使用 deps.jl 中的以下代码执行“使用 <PACKAGE_NAME>”:
#! /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
如果出于某种原因需要使用字符串,可以先将其转换为 aSymbol
并@eval
与结果一起使用。
packages = ["MbedTLS", "HTTP"]
for package in packages
try
@eval(using $(Symbol(package)))
catch err
println("$err")
end
end
"using "package
尝试创建字符串文字“使用”以将其与变量并列package
(即像5
in x=3; b = 5x
)。字符串文字并置是 Julia 1.0 中的语法错误。即使它不是语法错误,我也不记得它会用于运行表达式。
有关在 Julia 中创建和操作代码的更多信息,请参阅Julia 文档中的元编程部分。
推荐阅读
- c++ - 调试卡在 _kill 进程
- python - 从同一函数中获取 *args 中的参数名称
- python - 如何“拆分”一个 tkinter 框架,每边有两个不同的对象
- python-2.7 - 正确处理 unicode 字符串
- vba - 如何显示和修复找到正在注册的实际错误
- jquery - 如何将此 div 转换为底部并添加一些随机弹出方块
- katalon-studio - 如何使用关键字验证页面上的文本?
- android - 如何检查房间数据库是否存在?
- azure-devops - VSTS SpecFlowPlus:与您当前的操作系统“Windows(X86)”不兼容
- sql - 在 Sql 查询中需要很少的修改我想检查数据是否存在使用该 id 否则添加 row_number