War es hilfreich?

Lösung

Es hängt davon ab. Wenn Sie in die Scala-Quellen schauen, wird es oft einen imperativen Stil "unter der Haube" verwendet, um aufführbar zu sein - aber in vielen Fällen genau diese Tweaks zulassen, dass Sie write performant funktional Code. Normalerweise können Sie eine funktionelle Lösung finden, die schnell genug ist, aber Sie müssen vorsichtig sein und wissen, was Sie tun (insbesondere in Bezug auf Ihre Datenstrukturen). Z.B. Das Array Concat im zweiten Beispiel ist nicht nett, aber wahrscheinlich nicht so schlimm - aber mit Listen hier und konkat sie mit ::: würde überkill sein.

Das ist jedoch nicht mehr als ausgebildete Erraten, wenn Sie nicht eigentlich die Leistung messen. In komplexen Projekten ist es wirklich schwer, die Leistung vorherzusagen, zumal die Dinge wie Objekterstellung und Methodenaufrufe immer mehr vom Compiler und der JVM optimiert werden.

Ich würde vorschlagen, mit dem funktionalen Stil zu beginnen. Wenn es zu langsam ist, profitieren Sie es. Normalerweise gibt es eine bessere Funktionslösung. Wenn nicht, können Sie den imperativen Stil (oder eine Mischung von beiden) als letztes Resort verwenden.

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top