如何在 Julia 中使用“使用变量”

问题描述 投票:0回答:1

我正在尝试弄清楚是否可以使用不明确的包名称,例如

DataFrames
等,或者作为带有
using
的该模块名称的字符串变量。我的测试代码是:

dependencies=["CSV", "DataFrames", "Plots"]
for pkg in dependencies
    if !haskey(installed_packages, pkg)
        Pkg.add(pkg)
    end
    print(pkg)

   using .pkg
    
end

它在

using .pkg
上中断(也尝试不带点的id,有错误
TypeError: in using, expected Symbol, got a value of type Core.SlotNumber

variables package julia using
1个回答
0
投票

因为您想要做的是语法(更改

using
之后的项目的解释方式),所以您需要
@eval
宏:

@eval using $(Symbol(pkg))

您可以检查这与常规版本的

using
具有相同的语法表示,这证明它是正确的:

let pkg = "Plots"
    @assert :(using Plots) == :(using $(Symbol(pkg)))
end
© www.soinside.com 2019 - 2024. All rights reserved.