0

我正在阅读“Programming Scala”,其中一个代码示例如下:

下面的代码给出了这个错误:

Multiple markers at this line
    - type mismatch; found : Unit required: B
    - type mismatch; found : Unit required: B

  abstract class CustomMap[A, B] extends Map[A, B] {

    def get(key: A) : Option[B] = {
      if (contains(key)){
        new Some(getValue(key))
      }
      else
         None
    }

    def getValue(key : A) = {

    }

  }

错误发生在行:

new Some(getValue(key))

返回类型应该采用什么形式?我试过返回 int & String 编译器不接受它。

4

2 回答 2

1

正确的语法是Some(getValue(key)).

于 2013-06-19T20:40:00.277 回答
1

除了 Tass 指出的错误之外,这看起来像是您尚未实现getValue. 尝试定义getValue

def getValue(key: A): B = ??? 

直到你准备好提供一个实现。

不过,我对您的问题“返回类型应该采用什么形式?”感到困惑。你的意思是返回类型getValue?它应该返回一个B.

于 2013-06-19T20:41:46.260 回答