Scala:类型不匹配

时间:2015-02-02 17:15:31

标签: scala

我是斯卡拉的新手。这是我的代码片段

  var test_Id:Int = 0
  def getTestID():Int = {
  synchronized {
  return test_Id = test_Id+1
    }

这给我一个编译错误

type mismatch;  found   : Unit  required: Int   HelloWorld.scala

我将test_Id定义为Int。但是当我试图返回时,它不会被识别为Int。我应该如何将其作为Int

返回

2 个答案:

答案 0 :(得分:4)

分配的类型为Unit,因此您需要将更新与读取分开:

def getTestID() : Int = {
  synchronized {
      test_Id = test_Id+1
      test_Id
  }
}

答案 1 :(得分:0)

在Scala中,每个语句都是表达式,它产生一个值。将返回在方法的最后一行评估的表达式。分配操作被评估为类型单位。 因此,您需要将赋值表达式与返回值表达式分开。

  var test_Id:Int = 0
  def getTestID():Int = {
  synchronized {
      test_Id = test_Id+1
      test_Id // return keyword is optional.
  }
相关问题