如何删除在Julia REPL中工作时创建的功能?这可以在不重启会话的情况下完成吗?这对我来说是因为我使用错误的类型输入创建了一个函数,然后使其正确,但无法摆脱旧函数。
http://docs.julialang.org/en/release-0.4/manual/faq/上的常见问题解答 规定:
Julia does not have an analog of MATLAB’s clear function; once a name is
defined in a Julia session (technically, in module Main), it is always present.
答案 0 :(得分:3)
如果不重新启动REPL,则无法删除功能(Julia v0.4)。数据类型也是如此。
这与Julia的type mechanism的工作方式有关,但不幸的是,我对它的了解太少,无法进行更详细的解释。
答案 1 :(得分:0)
这是Julia文档所引用的参考。
没有方法可以删除功能,因此最好的选择是重新启动终端。
https://docs.julialang.org/en/latest/manual/faq/#how-do-i-delete-an-object-in-memory
希望很快会改变
答案 2 :(得分:0)
假设您已定义函数
xx(x) = 42
您可以找到
m = @which xx(1)
并使用
删除该方法Base.delete_method(m)
注意Base.delete_method(xx)
不起作用,即您不会像这样删除新功能(名称为xx
):
julia> xx
xx (generic function with 0 methods)
=>函数名称xx
仍然是已知的,但是您定义的方法已消失。但是,按照您的要求删除“类型输入错误的函数”,这可能就是您想要的解决方案。
(基于this thread。)