Ich bin neu bei scala und habe nur ein paar Beispiele erstellt, um es besser zu verstehen. Ich kann dieses Problem hier anscheinend nicht herausfinden - ich erstelle eine Liste von Strings in meinem Java-Programm und verwende diese Liste in meinem Scala-Programm. Mein Scala-Code zum Lesen der Liste aus der Java-Klasse sieht ungefähr so aus.Wie man flatMap in scala verwendet, um eine Menge von "Vals" zu gruppieren
private val stringList : Seq[List] = x.getStringName //gets the list from my java program.
Die String enthält
["How", "Are", "You"].
Ich versuche, einen Weg zu finden, diese Strings auf Werte genannt a, b und c an, so dass sie später auf einem Argumente an eine andere Funktion übergeben werden konnte .
val values = stringList.flatMap{
case x if (!stringList.isEmpty) =>
val a = /*should get the first string How*/
val b = /*should get the second string Are*/
val c = /*should get the third string You*/
case _ => None
}
getCompleteString(a,b,c);
Aber das funktioniert nicht. Ich tgives mir einen Fehler, der
"type mismatch; found : Unit required: scala.collection.GenTraversableOnce[?]"
sagt, ich benutze nicht, warum dies geschieht. Könnte mir jemand sagen, was mache ich hier falsch?
Es tut mir leid, wenn der Code schmutzig aussieht, aber ich bin ein Anfänger und versuche immer noch, die Sprache zu verstehen. Jede Hilfe wird geschätzt. Vielen Dank im Voraus.
Sind Sie sicher, dass Ihre 'stringList' den Typ 'Seq [List]' hat? Sollte es nicht 'List [String]' oder 'Seq [String]' oder was auch immer sein? Sie können den Typ entfernen und sehen, was Ihnen Ihre IDE über den Typ mitteilt. –