Scala - 传递参数时出错

时间:2015-12-12 15:28:45

标签: scala

我正在做关于Scala的Martin Odersky课程。 在其中一个作业中,我有以下类型:

type Occurrences = List[(Char, Int)]

我已经定义了一个从(Char, Int)类型的元素中减去Occurrences类型元素的方法。

  def subtractOne(x: Occurrences, (char: Char, nr: Int)): Occurrences = x match {
    case List() => throw new Exception("can not subtract")
    case (char, nr2) :: ocs => {
      if(nr2 > nr) (char, nr2 - nr) :: ocs
      else if(nr2 == nr) ocs
      else throw new Exception("can not subtract")
    }
    case _ :: ocs => subtractOne(ocs, (char, nr))
  }

但是,我在第一行收到一些不明确的错误:Wrong parameterDefinition or declaration expected

我宣布参数的方式有什么问题吗?

2 个答案:

答案 0 :(得分:2)

请勿在参数列表中使用括号。除非你想定义元组,但它应该用一个名字来完成。

def subtractOne(x: Occurrences, char: Char, nr: Int): Occurrences = x match {

答案 1 :(得分:2)

元组以一个名称定义 - charAndNr:(Char,Int) Nil也优于List()