如何在Julia中重载+ =?

时间:2015-01-12 12:17:07

标签: overloading julia

我试图了解运营商重载在Julia中是如何工作的。手册非常简短,并以+()作为示例函数,然后声明所有运算符都具有明显名称的可重载(还提供了非明显名称列表)。

但是+=?怎么样函数+=()似乎不存在,+=!()也没有(因为它是修改函数)。我经常通过首先定义+=来重载C ++中的运算符,然后使用基于副本和+的简单+=

在我的情况下,我甚至不认为我需要+,只是+=的行为...我意识到我可以编写自己的修改函数,但操作符语法会很好。 (出于好奇,*=/=$=等如何运作?)

1 个答案:

答案 0 :(得分:7)

没有+=功能。它只是a = a + b的语法糖。

它也没有变异。因此a += b计算a + b,然后更改a以引用结果。这意味着a + b的结果有内存分配。