2011-08-12 9 views
5

私のコードスニペットは、私はあなたがcrossingMapString -> Longペアが含まれているしたい場合があります以下のコンパイルエラーにスカラハッシュマップとオプションを一緒に使うにはどうすればいいですか?

error: type mismatch; 
found : Any 
required: Long 
val time: Long = crossingMap.get(crossingData).getOrElse(0) 
+6

ヒントを行う必要があるでしょう以下、

val crossingMap = new HashMap[String, Long] val crossingData: String = "" val time: Long = crossingMap.getOrElse(crossingData, 0) 

を行うことができます.get(crossingData) 'は' Option [Option [Long]] 'です。 –

+0

'String'を' None'にマップすると、最初の場所にマッピングを持たせることはできますか?だからKipton Barrosが示唆するように、おそらく 'HashMap [String、Long]'が必要なのです。 – Blaisorblade

答えて

4

を取得

import scala.collection.mutable.HashMap 

val crossingMap = new HashMap[String, Option[Long]] 
val crossingData: String = ... 
val time: Long = crossingMap.get(crossingData).getOrElse(0) 

下回っています。 `crossingMapの種類:次に、あなたが本当にタイプOption[Long]を持っているcrossingMap値を希望した場合は、その後、あなたが何かのように、

val crossingMap = new HashMap[String, Option[Long]] 
val crossingData: String = "" 
val time: Long = crossingMap.getOrElse(crossingData, None).getOrElse(0) 
関連する問題