1

参考:文档Pkg

我想比较同一个会话/脚本中两个不同包中具有相同名称的两个方法。为避免名称冲突,我想否定 using(即“撤消”/“反转”)。类似于detach所做的事情R

using PackageOne
some_method()

undo using PackageOne  # <-- negate `using PackageOne` without restarting
using PackageTwo
some_method()  # name collision avoided here
4

1 回答 1

1

您无法分离已在某些模块 AFAICT 中加载的包。您可以做的是使用这些方法将代码包装在这样的模块中:

module Test1
    using PackageOne
    some_method()
end

module Test2
    using PackageTwo
    some_method()
end

另一种方法是:

using PackageOne
using PackageTwo

methods = [PackageOne.some_method, PackageTwo.some_method]

function test(some_method)
    # here use some_method
end

for method in methods
    test(method)
end
于 2021-05-27T08:14:17.577 回答