我可以在Julia中使用< - 而不是=吗?

时间:2017-11-28 14:23:31

标签: julia

喜欢R:

a <- 2

甚至更好

a ← 2

应转换为

a = 2

如果可能的话尊重方法重载。

2 个答案:

答案 0 :(得分:4)

没有。 =不是Julia中的运算符,也不能分配给其他符号。

答案 1 :(得分:4)

在朱莉娅,

=超载(不是多次派遣意义上)。

  1. 它绑定一个新变量。与a = 3中一样。在这种情况下,您无法使用代替=,因为您无法在Julia中超载绑定。

  2. 它降低到setindex!。如同,a[i] = b降低到setindex!(a, b, i)。不幸的是,setindex!需要3个变量,而只需要2个变量。所以你不能用3个变量重载=

    但是,例如,您只能使用2个变量并重载a[:] = b。因此,您可以定义←(a,b) = (a[:] = b)←(a,b) = setindex!(a,b,:)

  3. a .= b降低到(Base.broadcast!)(Base.identity, a, b)。您可以通过定义←(a,b) = (a .= b)←(a,b) = (Base.broadcast!)(Base.identity, a, b)

  4. 来重载此内容

    因此,使用有两种可能的好方法。祝你好运;)

    顺便说一句,如果你真的想使用进行绑定(比如1.),唯一的方法就是使用宏。但是,你必须在每一个任务面前写一个宏,这看起来并不是很好。

    此外,如果您想探索如何降低Julia中的运算符,请执行f(a,b) = (a .= b),然后@code_lowered f(x,y)