2014-05-20 4 views
5

IntelliJ gibt mir einen Hinweis auf einen folgenden Code ein:Convert Spiel Anweisung Teilfunktion, wenn foreach verwendet wird

val l = List(0, "1", 2, "3") 

l.foreach{_ match {case xx:Int => println(xx);case _ =>}} 

Der Hinweis ist „match-Anweisung Teilfunktion Konvertieren“

Wenn ich die foreach ändern zu

l.foreach{case x:Int => println(x)} 

Ich bekomme die scala.MatchError Ausnahme. Ich kann collect statt foreach verwenden, aber das ergibt List, die nie verwendet wird.

Gibt es einen allgemeinen Weg, wie man damit umgeht (so etwas wie das Ignorieren der nicht übereinstimmenden Werte), oder sollte ich den Hinweis einfach ignorieren?

Antwort

13

Put Standardfall zurück:

val l = List(0, "1", 2, "3") 

l.foreach { case xx:Int => println(xx); case _ => } 

IDEA Ihnen gerne:

enter image description here

In der Tat, das ist, was IDEA wird generiert, wenn Sie vorgeschlagene Maßnahme tippen (ALT + Geben Sie ein, wenn Ihr Caret auf vergilbten Text zeigt)

Verwandte Themen