我正在尝试确定是否在每周比赛结果报告中显示加时赛显示标志。
数据库比赛结果表有 3 列 (p4,p5,p6),表示潜在的加时赛期间总得分(分别为加时赛、双加时赛和三倍加时赛)。这些列映射到应用层中的 Option[Int]。
目前我正在过滤游戏结果 teamA、teamB 对,但实际上我只想知道是否存在任何类型的 OT 游戏(而不是逐步浏览集合)。
def overtimeDisplay(a: GameResult, b: GameResult) = {
val isOT = !(List(a,b).filter(_.p4.isDefined).filter(_.p5.isDefined).filter(_.p6.isDefined).isEmpty)
if(isOT) {
<b class="b red">
{List( ((a.p4,a.p5,a.p6),(b.p4,b.p5,b.p6)) ).zipWithIndex.map{
case( ((Some(_),None,None), (Some(_),None,None)), i)=> "OT"
case( ((Some(_),Some(_),None), (Some(_),Some(_),None )), i)=> "Double OT"
case( ((Some(_),Some(_),Some(_)), (Some(_),Some(_),Some(_) )), i)=> "Triple OT"
}}
</b>
}
else scala.xml.NodeSeq.Empty
}
其次,确定显示哪种类型的加班,当前是繁忙的模式匹配(现在看,它似乎并未涵盖所有评分场景),可能可以以更实用/更简洁的方式完成。
如果您有更好的方法,请随意放下它。
谢谢