Ich versuche, eine Suchfunktion zu erstellen, so dass der Benutzer eine Liste mit dem Schlüsselwert durchsuchen kann, aber die Methode Im versucht zu verwenden, gibt einen Typkonflikt zurück, haben unnötigen Code herausgenommen und gezeigt, was ist erforderlich. Wie setze ich Punkte, um einen Int zu nehmen und nicht "Irgendwelche"?Scala Type Mismatch Mapping
"Typ ANY entspricht nicht Int Typ"
val mapdata = readFile("data.txt")
def handleTwo(): Boolean = {
mnuShowPointsForTeam(currentPointsForTeam)
true
}
def mnuShowPointsForTeam(f: (String) => (String, Int)) = {
print("Team>")
val data = f(readLine)
println(s"${data._1}: ${data._2}")
}
def currentPointsForTeam(team: String): (String, Int) = {
val points = mapdata.get(team) match{
case Some(p) => p
case None => 0
}
(team, points)
}
Die data.txt
SK1, 9, 7, 2, 0, 7, 3, 7, 9, 1, 2, 8, 1, 9, 6, 5, 3, 2, 2, 7, 2, 8, 5, 4, 5, 1, 6, 5, 2, 4, 1
SK2, 0, 7, 6, 3, 3, 3, 1, 6, 9, 2, 9, 7, 8, 7, 3, 6, 3, 5, 5, 2, 9, 7, 3, 4, 6, 3, 4, 3, 4, 1
SK4, 2, 9, 5, 7, 0, 8, 6, 6, 7, 9, 0, 1, 3, 1, 6, 0, 0, 1, 3, 8, 5, 4, 0, 9, 7, 1, 4, 5, 2, 8
SK5, 2, 6, 8, 0, 3, 5, 5, 2, 5, 9, 4, 5, 3, 5, 7, 8, 8, 2, 5, 9, 3, 8, 6, 7, 8, 7, 4, 1, 2, 3
SK6, 2, 7, 5, 9, 1, 9, 8, 4, 1, 7, 3, 7, 0, 8, 4, 5, 9, 2, 4, 4, 8, 7, 9, 2, 2, 7, 9, 1, 6, 9
SK7, 6, 9, 5, 0, 0, 0, 0, 5, 8, 3, 8, 7, 1, 9, 6, 1, 5, 3, 4, 7, 9, 5, 5, 9, 1, 4, 4, 0, 2, 0
SK8, 2, 8, 8, 3, 1, 1, 0, 8, 5, 9, 0, 3, 1, 6, 8, 7, 9, 6, 7, 7, 0, 9, 5, 2, 5, 0, 2, 1, 8, 6
SK9, 7, 1, 8, 8, 4, 4, 2, 2, 7, 4, 0, 6, 9, 5, 5, 4, 9, 1, 8, 6, 3, 4, 8, 2, 7, 9, 7, 2, 6, 6
Was ist der Typ von 'mapData'? Was ist der Rückgabewert für 'mnuShowPointsForTeam' (jetzt nur noch printlns)? – Thilo
aktualisiert die Frage, MapData ist eine externe TXT-Datei, ja, es nur printlns das Team, das Schlüsselwert eingegeben wird @Thilo –
Aber was ist der Typ von 'mapData'? Ist es "Map [String, Any]"? Wenn Sie diese Map [String, Int] nicht erzeugen können, dann müssen Sie innerhalb dieses 'case Some (p)' - Teils in Int konvertieren. – Thilo