2016-09-08 38 views
0

什麼是代表下面如果接着還有更簡潔的方式:如果再在地圖別的

val result = scores.map(score => 
    if (score == 0) 
    ("retake", 1) 
    else if (score < 0) 
    ("fail", 1) 
    else 
    ("pass", 1) 
) 
+1

同時在控制結構外部移動'1',它在所有情況下都是一樣的 –

+0

@AlvaroCarrasco,你能給我一些示例代碼嗎? –

+2

'(if(score == 0)「re-」else else if(score <0)「fail」else「pass」) - > 1' –

回答

3

模式與警衛匹配

scores map { 
    case 0 => "retake" -> 1 
    case x if x < 0 => "fail" -> 1 
    case _ => "pass" -> 1 
} 
9

使用模式匹配:

val result = scores.map { 
    case 0 => ("retake", 1) 
    case s if s < 0 => ("fail", 1) 
    case _ => ("pass", 1) 
}