Wie würde ich die folgende rückwärts laufende Java-Zählschleife in Scala übersetzen?

8

Der folgende Java-Code ist ein sehr einfaches Stück Code, aber was sind die entsprechenden Konstrukte in Scala?

%Vor%     
deltanovember 19.07.2011, 02:48
quelle

3 Antworten

23

Die Antwort hängt davon ab, ob der Code auch so schnell sein soll wie in Java.

Wenn Sie möchten, dass es funktioniert, können Sie Folgendes verwenden:

%Vor%

( until bedeutet den letzten Eintrag weglassen und to bedeutet enthält den letzten Eintrag , als ob Sie > oder >= verwendet hätten).

Dafür wird es jedoch einen bescheidenen Aufwand geben; Die for -Schleife ist ein allgemeineres Konstrukt in Scala als in Java, und obwohl sie prinzipiell optimiert werden konnte, ist sie in der Praxis noch nicht verfügbar (nicht in der Kerndistribution durch 2.9; das ScalaCL-Plugin wird es wahrscheinlich für Sie optimieren) , jedoch).

Bei einem Println dauert das Drucken viel länger als das Looping, also ist es in Ordnung. Aber in einer engen Schleife, von der Sie wissen, dass es sich um einen Leistungsengpass handelt, müssen Sie stattdessen while-Schleifen verwenden:

%Vor%     
Rex Kerr 19.07.2011, 03:26
quelle
7

Um von 10 bis 0 (exklusiv) in 2er Schritten in Scala zu iterieren, können Sie mit den Methoden until und by einen Bereich erstellen und dann in einer for-Schleife über sie iterieren:

%Vor%     
sepp2k 19.07.2011 02:54
quelle
5

Natürlich können Sie das auch:

%Vor%

oder

%Vor%

oder wie wäre es mit

? %Vor%     
user unknown 19.07.2011 04:19
quelle

Tags und Links