Biểu thức đối sánh chuỗi không biên dịch.Tại sao biểu thức kết hợp chuỗi không biên dịch?
val x = Array("abc", "pqr")
x match {
case Array("abc", _*) => Some("abc is first")
case Array("xyz", _*) => Some("xyz is first")
case _ => None
} match {
case Some(x) => x
case _ => "Either empty or incorrect first entry"
}
Trong khi sau biên dịch tốt:
(x match {
case Array("abc", _*) => Some("abc is first")
case Array("xyz", _*) => Some("xyz is first")
case _ => None
}) match {
case Some(x) => x
case _ => "Either empty or incorrect first entry"
}
Tại sao phiên bản sau này (trong đó biểu hiện trận đấu đầu tiên là trong ngoặc) biên dịch tốt trong khi một sớm không?
Không có gì để nói ở đây, ngoại trừ 'match' không phải là một phương pháp, nhưng từ khóa và trình biên dịch hoạt động theo cách này. – senia
@senia Luôn có điều gì đó để nói. Không phải lúc nào cũng ban đầu hay thú vị, tất nhiên. –
@senia Nếu nó đã được trả lời, thì tôi sẽ không có câu trả lời. –