像x\y=1这样的赋值在Julia中意味着什么?

像x\y=1这样的赋值在Julia中意味着什么?,julia,Julia,在试用Julia 1.0时,我注意到我可以做如下操作: x\y=1 REPL随后显示: \(带1方法的通用函数) 这意味着这是一个有效的任务(口译员不会抱怨)。但是,x、y和x\y都未定义 这种表达式的含义是什么?这是一个新的函数定义,它(某种)在Base中隐藏了左除法运算符\,因为在Julia中已经为某些类型定义了左除法运算符。新的函数定义是\(x,y)=1(函数参数的名称无关紧要),它适用于所有类型的变量。由于名称冲突,这将阻止julia加载Base.\。无论输入是什么,新的\都将返回相同的

在试用Julia 1.0时,我注意到我可以做如下操作:

x\y=1

REPL随后显示:

\(带1方法的通用函数)

这意味着这是一个有效的任务(口译员不会抱怨)。但是,
x
y
x\y
都未定义


这种表达式的含义是什么?

这是一个新的函数定义,它(某种)在
Base
中隐藏了左除法运算符
\
,因为在Julia中已经为某些类型定义了左除法运算符。新的函数定义是
\(x,y)=1
(函数参数的名称无关紧要),它适用于所有类型的变量。由于名称冲突,这将阻止julia加载
Base.\
。无论输入是什么,新的
\
都将返回相同的值

julia> x\y = 5

julia> a = 3; b = 4;
julia> a\b
5
julia> c = "Lorem ipsum"; d = "dolor";
julia> c\d
5
如果您已经使用了在
Base
中定义的
\
,您的重新定义将抛出一个错误,说明扩展
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

这是一个新的函数定义,它(某种程度上)在
Base
中隐藏了左除运算符
\
,因为在Julia中已经为某些类型定义了左除运算符。新的函数定义是
\(x,y)=1
(函数参数的名称无关紧要),它适用于所有类型的变量。由于名称冲突,这将阻止julia加载
Base.\
。无论输入是什么,新的
\
都将返回相同的值

julia> x\y = 5

julia> a = 3; b = 4;
julia> a\b
5
julia> c = "Lorem ipsum"; d = "dolor";
julia> c\d
5
如果您已经使用了在
Base
中定义的
\
,您的重新定义将抛出一个错误,说明扩展
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