代码之家  ›  专栏  ›  技术社区  ›  kwicher

如何在Julia中使用“using variable”

  •  0
  • kwicher  · 技术社区  · 1 年前

    我正在试图弄清楚是否可以不明确地使用包名称,例如 DataFrames etc或作为一个字符串变量,该变量具有此模块的名称 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 (也尝试不带点,但有错误 TypeError: in using, expected Symbol, got a value of type Core.SlotNumber

    1 回复  |  直到 1 年前
        1
  •  1
  •   BallpointBen    1 年前

    因为你想做的是句法上的(改变后面项目的方式 using 被解释),您将需要 @eval 宏:

    @eval using $(Symbol(pkg))
    

    您可以检查它是否与的常规版本具有相同的语法表示 使用 ,这证明它是正确的:

    let pkg = "Plots"
        @assert :(using Plots) == :(using $(Symbol(pkg)))
    end