爲什麼我的val pairOpt
a Option[Option[String,String]]
?試圖返回一個地圖,但目前正在返回一個Iterable
我想擁有它,所以它返回Option[(String, String)]
。
def blah(..): Map[String, String] = {
val map: Map[String, String] = //
val boolTry = Try(map.getOrElse("key1", "").trim.toBoolean)
val intTry = Try(map.getOrElse("key2, "").trim.toInt)
val pairOpt: Option[Option[(String, String)]] = for {
b <- boolTry.toOption
i <- intTry.toOption
} yield {
val res: Option[String] = (b, i) match {
case (true, 1) => Some("a")
case (false, 2 | 3 | 7) => Some("b")
case (true, 5 | 9 | 11) => Some("c")
case _ => None
}
res.map("foo" -> _)
}
map ++ pairOpt // map + ("foo" -> "c")
}
返回值也currenly Iterable[Product with Serializable]
時,我希望它是Map[String,String]
。
我在這裏錯過了什麼?
你它返回地圖[字符串,字符串]或Option [(字符串,字符串)?我相信迭代是返回的,因爲它只是可能的類型,它滿足向選項[Option [String,String]]添加Map [String,String]。 – pedrofurla
@pedrofurla我希望for-comp返回Option [String,String]和返回Map [String,String]的方法, –