如何在不重新启动的情况下分离包
How to detach a package without restarting
参考:docs Pkg
我想比较来自同一 session/script 中两个不同包的两个同名方法。为避免名称冲突,我想 negate using
(即“撤消”/“反转”)。类似于 detach 对 R
所做的事情。
using PackageOne
some_method()
undo using PackageOne # <-- negate `using PackageOne` without restarting
using PackageTwo
some_method() # name collision avoided here
您不能分离已加载到某个模块 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
参考:docs Pkg
我想比较来自同一 session/script 中两个不同包的两个同名方法。为避免名称冲突,我想 negate using
(即“撤消”/“反转”)。类似于 detach 对 R
所做的事情。
using PackageOne
some_method()
undo using PackageOne # <-- negate `using PackageOne` without restarting
using PackageTwo
some_method() # name collision avoided here
您不能分离已加载到某个模块 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