我在Windows 8.1上使用Julia 0.3.0
我输入以下内容:
julia> Y, M = 2000, 2
(2000,2)
julia> if M == 1 | M == 2
Y -= 1
M += 12
end
julia> Y, M
(2000,2)
我预计Y = 1999,M = 14
显然这不是使用按位或(|)的方法 我如何达到预期的效果?
答案 0 :(得分:3)
使用||
(http://docs.julialang.org/en/latest/manual/control-flow/#man-short-circuit-evaluation)作为控制流or
。
这种情况下的问题是运算符优先级:|
是按位 - 或者高于相等,请参阅http://docs.julialang.org/en/latest/manual/mathematical-operations/。例如,如果您执行(M==1)|(M==2)
,则可以使用它。不清楚优先权是否应该改变,至少people are talking about the issue。