Unterschied zwischen Karte und foreach Methode in Scala? [Duplikat]

8

Ich habe einen großen Zweifel, als ich anfing, Scala zu programmieren. Ich möchte wissen, wie die Methode map in scala funktioniert. Ob es sequenziell oder in Multithread verarbeitet wird? Und noch wichtiger, ich würde gerne wissen, warum map methode schneller ist als while oder foreach ?

%Vor%     
Kishore Karunakaran 13.06.2013, 06:01
quelle

1 Antwort

18

Erstens sind die beiden Operationen unendlich verschieden. map ist eine Transformation der Liste bei einer Funktion A => B , während foreach % Unit ergibt und normalerweise für Nebeneffekte verwendet wird.

Ich würde schätzen, dass foreach in Bezug auf Zyklen, die zur Ausführung benötigt werden, "schneller" ist als map , was eine neue Sammlung (in diesem Fall) als Ergebnis der Funktion erzeugt. Aber der Vergleich dieser beiden vergleicht wirklich Äpfel und Orangen.

map ist nur parallel, wenn es sich bei der Sammlung, für die es aufgerufen wird, um eine parallele Sammlung handelt. Also in deinem Beispiel:

%Vor%

ist nicht parallel und ist sequenziell, aber

%Vor%

wäre parallel. Es gibt offensichtlich verschiedene Vorbehalte, die bei dieser Verwendung berücksichtigt werden müssen. Die selbe parallele Sammlung hat auch eine foreach Methode.

    
gpampara 13.06.2013 06:28
quelle

Tags und Links