喜欢R:
a <- 2
甚至更好
a ← 2
应转换为
a = 2
如果可能的话尊重方法重载。
答案 0 :(得分:4)
没有。 =
不是Julia中的运算符,也不能分配给其他符号。
答案 1 :(得分:4)
=
超载(不是多次派遣意义上)。
它绑定一个新变量。与a = 3
中一样。在这种情况下,您无法使用←
代替=
,因为您无法在Julia中超载绑定。
它降低到setindex!
。如同,a[i] = b
降低到setindex!(a, b, i)
。不幸的是,setindex!
需要3个变量,而←
只需要2个变量。所以你不能用3个变量重载=
。
但是,例如,您只能使用2个变量并重载a[:] = b
。因此,您可以定义←(a,b) = (a[:] = b)
或←(a,b) = setindex!(a,b,:)
。
a .= b
降低到(Base.broadcast!)(Base.identity, a, b)
。您可以通过定义←(a,b) = (a .= b)
或←(a,b) = (Base.broadcast!)(Base.identity, a, b)
。
因此,使用←
有两种可能的好方法。祝你好运;)
顺便说一句,如果你真的想使用←
进行绑定(比如1.),唯一的方法就是使用宏。但是,你必须在每一个任务面前写一个宏,这看起来并不是很好。
此外,如果您想探索如何降低Julia中的运算符,请执行f(a,b) = (a .= b)
,然后@code_lowered f(x,y)
。