0
我的API當前採用名爲gamedate的可選參數。它以一個字符串的形式傳入,在這個時候我稍後使用一些實用程序代碼將它解析爲一個Date對象。代碼看起來像這樣:Scala:解析API參數
val gdate:Option[String] = params.get("gamedate")
val res = gdate match {
case Some(s) => {
val date:Option[DateTime] = gdate map { MyDateTime.parseDate _ }
val dateOrDefault:DateTime = date.getOrElse((new DateTime).withTime(0, 0, 0, 0))
NBAScoreboard.findByDate(dateOrDefault)
}
case None => NBAScoreboard.getToday
}
這工作得很好。現在我想解決的是我允許多個遊戲通過逗號分隔的列表傳入。本來你可以通過這樣的參數:
gamedate=20131211
現在我希望允許OR:
gamedate=20131211,20131212
需要修改上面的代碼,試圖拆分逗號分隔字符串將每個值解析爲Date並將接口更改爲findByDate以接受Seq [DateTime] vs DateTime。我試圖運行這樣的事情,但顯然它不是去了解它的方式:
val res = gdates match {
case Some(s) => {
val dates:Option[Seq[DateTime]] = gdates map { _.split(",").distinct.map(MyDateTime.parseDate _)}
val datesOrDefault:Seq[DateTime] = dates map { _.getOrElse((new DateTime).withTime(0, 0, 0, 0))}
NBAScoreboard.findByDates(datesOrDefault)
}
case None => NBAScoreboard.getToday
}
什麼是我的第一套轉換的代碼來處理這個用例的最佳方式?在我提供的第二個代碼示例中,我可能相當接近,但我只是沒有達到正確的效果。
但是,看起來你的代碼仍然在getOrElse()上斷了。 'value getOrElse不是Array [org.joda.time.DateTime]的成員' – randombits
謝謝,那裏仍然有錯誤。 – tmbo