案例匹配Scala

时间:2017-12-10 19:02:09

标签: scala

我们将此作为考试题目(练习),答案是1和6.我不知道这是什么答案,踩到程序也没有帮助。任何人都可以解释为什么这是答案以及如何处理这个问题。

    var value1: Int = 4
    var value2: Int = 6

    value1 match {

      case 1 => value2 += 1

    case 2 => value2 -= 4

    case 3 => value1 = value2 * 2

    case 4 => value1 -= 3;

    case 5 => value2 += 1

    case _ => value1 = value2 + 1

    }

println("value1 = " + value1 + ", value2 = " + value2)

1 个答案:

答案 0 :(得分:1)

我想您对match的工作原理感到困惑。虽然它看起来类似于其他语言中的switch语句,但它有些不同。

在Scala中,case表达式没有"通过"。每个案例都是独立评估的,如果在这种情况下变量value1与模式匹配,则执行其块。一旦执行了一个块,就会忽略所有其他(可能匹配的)情况。