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
?
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:
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.
Tags und Links scala