2016-07-13 2 views
1

Я новичок в scala и задавался вопросом, как мне начать цикл foreach на конкретном индексе в scala? Мой код в настоящее время, который выглядит примерно так:Как начать цикл foreach с определенным индексом в scala?

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

Здесь «список» содержит список строк [ «один», «два», «три», «четыре», «пять»]. Вместо того, чтобы начинать с начала списка, я хочу, чтобы мой цикл для каждого цикла начинал работать с индекса i и игнорировал все его значения перед ним (то есть учитывайте только значения «четыре» и «пять»).

Может кто-нибудь, пожалуйста, помогите мне здесь? Спасибо заранее

ответ

0

Ну, вы могли использования .drop как говорит другой ответ, но это неправильно, что нужно делать в этом случае. В итоге вы дважды переходите к заголовку списка, что является неэффективным и неэлегантным.

Вы можете сделать то же самое с помощью всего одного сканирования:

list 
.dropWhile(_ != "three") 
.tail 
.foreach { n => 
    ... 
} 
Смежные вопросы