2016-07-13 4 views
1

Ich bin neu bei scala und habe mich gefragt, wie ich eine foreach-Schleife bei einem bestimmten Index in scala starte? Mein Code zur Zeit sieht, dass etwas wie folgt aus:Wie starte ich eine foreach-Schleife bei einem bestimmten Index in scala?

var i = list.indexOf("three") 
for(n <-list){ 
    /*do some operation*/ 
} 

Hier ist die „Liste“ enthält eine Liste von Strings [ „eins“, „zwei“, „drei“, „vier“, „fünf“]. Anstatt am Anfang der Liste zu beginnen, möchte ich, dass meine Schleife für jede Schleife den Index i startet und alle davor liegenden Werte ignoriert (d. H. Nur die Werte "vier" und "fünf" berücksichtigen).

Kann mir bitte jemand hier helfen? Vielen Dank im Voraus

Antwort

4

Verwendung drop:

for (n <- list.drop(i)) {...} 
0

Nun, Sie konnte Verwendung .drop wie die andere Antwort vermuten lässt, aber das ist eine falsche Sache in diesem Fall zu tun. Sie überqueren den Kopf der Liste zweimal, was ineffizient und unelegant ist.

Sie können mit nur einem einzigen Scan das gleiche tun:

list 
.dropWhile(_ != "three") 
.tail 
.foreach { n => 
    ... 
} 
Verwandte Themen