입니다.사용 FORALL 대신 필터 [A] 주간 게임 결과 보고서에 초과 근무 게임 표시 플래그를 표시할지 여부를 결정하기 위해 노력하고
데이터베이스 게임 결과 테이블은 3 열 (각각 OT를 들어, 더블 OT, 트리플 OT) 잠재적 인 초과 근무 게임 기간 점수 합계를 나타냅니다 (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
}
, 초과 근무의 유형 (지금 그것을보고, 커버 모든 득점 시나리오를 표시하지 않는,), 현재 해당 바쁜 패턴 일치를 표시 할의 결정은, 아마 더 많은 기능으로 수행 할 수/간결한 방식.
당신은 더 좋은 방법이 있다면 그것을 누워 주시기 바랍니다.
감사
+1 와우, nonEmpty, awesome에 존재하며, 기본적으로 아무것도 일치하지 않는 패턴을 압축하려면 +10 옵션이 있어야합니다 .-) – virtualeyes
단일 OT에 대해 "Double OT"가됩니다. 그로보고 게임은, 지금 ... – virtualeyes
@virtualeyes : 내 나쁜 변경 : '라벨 (P.SIZE - 1)' –