在Julia中,x\y = 1的赋值是什么意思?

Ama*_*ade 1 julia

在尝试使用Julia 1.0时,我注意到我可以做这样的事情:

x\y = 1

然后REPL显示:

\ (generic function with 1 method)

这意味着它是一个有效的任务(口译员不会抱怨).然而x,yx\y所有仍然不确定.

这种表达的含义是什么?

hck*_*ckr 8

这是一个新的函数定义是(种)阴影的左除法运算\Base,由于左除法运算符是对一些类型的朱莉娅已定义.新函数定义\(x,y) = 1(函数参数的名称无关紧要)适用于所有类型的变量.Base.\由于名称冲突,这将防止julia加载.无论输入是什么,您的新内容\都会返回相同的值.

julia> x\y = 5

julia> a = 3; b = 4;
julia> a\b
5
julia> c = "Lorem ipsum"; d = "dolor";
julia> c\d
5
Run Code Online (Sandbox Code Playgroud)

如果您已经使用了\定义的那个Base,那么您的重新定义将抛出一个错误,指出扩展Base.\需要显式导入import Base.\.然而,定义\之后的行为import Base.\将是不同的.它将扩展运营商Base.\.

julia> 1\[1,3]
2-element Array{Float64,1}:
 1.0
 3.0

julia> import Base.\

julia> x\y=3
\ (generic function with 152 methods)

julia> 1\[1,3]
2-element Array{Int64,1}:
 3
 3
Run Code Online (Sandbox Code Playgroud)