我正在查看以下代碼段。當代碼中map-getOrElse和嵌套的patten匹配增加時,它看起來不那麼優雅。你有什麼更好的選擇建議?使代碼在功能上更具可讀性
case MyMessage =>
val image = (request \ "image").asOpt[String]
image.map { im =>
val conf = (request \ "confirmation").asOpt[String]
conf.map { cf =>
//code to retrieve ride
ride match {
case Some(r) =>
if (booleanCondition) sender ! SuccessCommand(JsBoolean(true), command)
else sender ! FailureCommand("Problem updating", command)
case None => sender ! FailureCommand("Ride empty", command)
}
} getOrElse (sender ! FailureCommand("Missing number", command))
} getOrElse (sender ! FailureCommand("Missing image", command))
你有'發件人! FailureCommand'四次。也許'def reportFailure(msg:String)=發件人! FailureCommand(msg,command)'在適當的位置(即'sender'和'command'在範圍內)? –