0

私は「プログラミング Scala」を読んでいます。コード サンプルの 1 つを以下に示します。

以下のコードでは、このエラーが発生します。

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 が指摘したエラーに加えて、これは実装していないという事実のアーティファクトのように見えますgetValuegetValueとして定義してみてください

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

実装を提供する準備が整うまで。

しかし、「戻り値の型はどのような形式を取るべきですか?」という質問には混乱しています。の戻り値の型を意味しgetValueますか? を返す必要がありBます。

于 2013-06-19T20:41:46.260 に答える