IntelliJ mang lại cho tôi một gợi ý về một đoạn mã sau:Chuyển đổi trận đấu tuyên bố chức năng một phần khi foreach được sử dụng
val l = List(0, "1", 2, "3")
l.foreach{_ match {case xx:Int => println(xx);case _ =>}}
Các gợi ý là "Chuyển đổi tuyên bố trận đấu với chức năng một phần"
Khi tôi thay đổi foreach đến
l.foreach{case x:Int => println(x)}
Tôi nhận được ngoại lệ scala.MatchError
. Tôi có thể sử dụng collect
thay vì foreach
, tuy nhiên tạo ra kết quả List
không bao giờ được sử dụng.
Có cách nào phổ biến làm thế nào để xử lý này (một cái gì đó như foreach bỏ qua các giá trị không phù hợp), hoặc tôi nên bỏ qua gợi ý?