像x\y=1这样的赋值在Julia中意味着什么?
在试用Julia 1.0时,我注意到我可以做如下操作:像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.\。无论输入是什么,新的\都将返回相同的
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