【问题标题】:Julia: Use operator that is not in Main moduleJulia:使用不在主模块中的运算符
【发布时间】:2021-05-20 09:50:43
【问题描述】:

在 Julia (1.x) 中使用运算符作为函数而不在 Main 模块中定义它的最佳方法是什么? 例如。如果我想使用LinearAlgebra 模块中的(乳胶:\cdot)运算符而不在Main 模块中添加运算符?

天真的解决方案报错:

julia> import LinearAlgebra
julia> LinearAlgebra.⋅(1,2)
ERROR: UndefVarError: ⋅ not defined

我想到的唯一解决方案是:

import LinearAlgebra
op = LinearAlgebra.eval(Meta.parse("⋅")) # get the function object
op(1,2) # use it

还有比这更好的方法吗?

【问题讨论】:

    标签: julia


    【解决方案1】:

    我假设你不想只是打电话

    using LinearAlgebra
    

    将点运算符带入当前模块命名空间,对吗?

    在这种情况下,您可以通过在运算符前面加上冒号来调用模块中的运算符:

    import LinearAlgebra
    LinearAlgebra.:⋅((1,2), (0,1))
    

    【讨论】:

      猜你喜欢
      • 2021-06-19
      • 1970-01-01
      • 1970-01-01
      • 2016-01-20
      • 2016-01-05
      • 1970-01-01
      • 2017-12-31
      • 2021-11-27
      • 2012-12-17
      相关资源
      最近更新 更多