Scala中的奇怪错误和输出

Scala中的奇怪错误和输出,scala,Scala,我在Scala中有以下代码: var i: Int = 0 var sum: Int = 0 for(i<- 1 to 10) { sum= sum+1 } println(sum) 它会产生一个错误 如果你写 sum=-sum+1 sum=-(sum+1) 它也会产生一个错误 sum= -(sum+1) 产生零。为什么是零 这在C++中没有发生,我觉得奇怪。发生了什么,为什么?如果在Scala中使用空格有关系吗?在前两种情况下,Scala编译器可能将=-解释为运算符

我在Scala中有以下代码:

var i: Int = 0
var sum: Int = 0

for(i<- 1 to 10)
{
    sum= sum+1  
}
println(sum)
它会产生一个错误

如果你写

sum=-sum+1
sum=-(sum+1)
它也会产生一个错误

sum= -(sum+1)
产生零。为什么是零


<>这在C++中没有发生,我觉得奇怪。发生了什么,为什么?如果在Scala中使用空格有关系吗?

在前两种情况下,Scala编译器可能将
=-
解释为运算符,而不是将
-
与赋值的右侧关联。第三种情况在评论中得到了回答。

您的代码产生了什么错误?@egracer其中一个是“value=-不是Double的成员”。您重复
sum=-(sum+1)
10次。所以总和变为0->-1->0->-1等等,最后变成0。@Adam我下面的答案就是问题所在。编译器认为
=-
应该是
Double
上的运算符,但API中没有定义这样的运算符。@egracer,这并不能解释第三种情况。当我使用一个空格,所以没有这个操作符=-为什么结果是零?