Scala - 无法弄清楚这个Expression评估

时间:2015-09-24 15:29:17

标签: scala

我是Scala的初学者。我无法理解下面的Scala表达式:

if(true)

x的初始值为3,执行上面的表达式后,它变为4。

我无法理解{{1}},实际上是什么评估?

2 个答案:

答案 0 :(得分:4)

if(true) x else y将始终执行if分支,因为条件为true。因此,if表达式的结果将始终为x + 1

答案 1 :(得分:1)

向@TillRohrmann致敬,对于我们Scala的新手来说,事情有时并不像经验丰富的程序员那么清晰。以下是我的详细尝试,不仅适用于您,也适用于将来可能会遇到类似问题的其他人。

x = if (true) x+1 else x-1

将您的表达视为

x = function_if ( argument=true ) {
        if (argument = true ){
            return x+1
        }else{
            return x-1
        }
    }

由于参数始终为true,因此答案始终为x+1。 希望这有帮助!