scala Erstellen Sie eine Zeichenfolge aus der Iteration über die Karte

8

Wenn ich eine Map habe und einen String erstellen will, indem ich darüber iteriere, gibt es eine Möglichkeit, dass der letzte String ein Ergebnis eines Ausdrucks ist, anstatt eine Variable zu definieren und diese innerhalb einer Schleife zu ändern?

statt dessen

%Vor%

Ich wäre es lieber

%Vor%     
user747980 12.05.2011, 22:31
quelle

5 Antworten

6

Sie können dies mit einer Falte tun:

%Vor%     
Ben James 12.05.2011, 22:37
quelle
17

Ich hätte nur map und mkString . Zum Beispiel:

%Vor%     
Daniel C. Sobral 12.05.2011 23:21
quelle
13

Wie für Daniels Antwort, aber mit ein paar Optimierungen und meinen eigenen Formatierungseinstellungen:

%Vor%

Die Optimierungen:

  1. Indem ich zuerst eine view der Karte erstelle, vermeide ich die Erstellung einer Zwischenkollektion
  2. Beim Profiling ist direkte String-Verkettung schneller als String.format
Kevin Wright 12.05.2011 23:53
quelle
2

Ich bin ziemlich neu bei Scala, aber Sie können reduceLeft ausprobieren. Es akkumuliert einen Teilwert (die Zeichenfolge wird mit jedem Element verknüpft). Wenn Sie beispielsweise die Schlüssel (oder die Werte) in einer Zeichenfolge verknüpfen möchten, tun Sie Folgendes:

%Vor%

Dies führt zu " 13 "

    
Diego Sevilla 12.05.2011 22:39
quelle
2

Dies funktioniert auch, wenn Sie sich nicht um Ihre eigene Formatierung kümmern:

%Vor%     
Antonin Brettsnajdr 13.05.2011 11:43
quelle

Tags und Links