julia - 如何在 Julia 中恢复被覆盖的内置函数

标签 julia

这个问题也可能适用于其他语言。

如果我使用内置函数名作为变量名,
我可以通过执行以下操作来恢复该功能:

all = 123
all = Base.all

但是如果我定义,例如,一个自定义函数 sum() 然后我做,
sum = Base.sum

我收到一条错误消息,提示“常量总和的重新定义无效”

如果我重写了内置函数,有没有办法恢复它?或者这是不可能的设计?

最佳答案

对于这个例子,你可以重新定义 sumBase.sum :
sum(x) = Base.sum(x)
那是你想要的吗?

注意。这可能不会“覆盖”您对总和的定义。如果它使用类型参数(例如 sum(x::Vector),它仍可能优先于一般的 sum(x) 被调度,在这种情况下,您需要对这些特定方法重复上述操作。

关于julia - 如何在 Julia 中恢复被覆盖的内置函数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41594744/

相关文章:

utf-8 - Julia :我的字符串中有奇怪的字符

julia - 如何在 Julia 中绘制热图

image - Julia - 如何使用函数 `imshow` 调整图像大小?

julia - 透视在 Julia 中扭曲图像

performance - 第一次调用 Julia 很慢

ipython-notebook - 如何在 IJulia 笔记本中定义自定义 _repr_*_ 方法?

syntax - 为什么来自 "The Julia Language Documentation"的这一行为输入参数是不同类型的情况定义了一个外部构造函数?

r - 带有 NULL 参数的 Julia 函数

regex - 如何仅在字符串的开头替换重复字符/单词的模式?

julia - 元组的 StackOverflowError