我是scala的新手,并且想知道如何在scala中的特定索引处启动foreach循环?我的代码目前看起来像这样:
var i = list.indexOf("three")
for(n <-list){
/*do some operation*/
}
这里“list”包含一个字符串列表[“one”,“two”,“three”,“four”,“five”]。我希望我的每个循环从索引i开始操作而忽略它之前的所有vaues(即只考虑值“four”和“five”),而不是从列表的开头开始。
有人可以帮我吗?提前谢谢
答案 0 :(得分:4)
使用drop
:
for (n <- list.drop(i)) {...}
答案 1 :(得分:0)
嗯,你可以使用.drop
,就像其他答案所暗示的那样,但在这种情况下做错了。你最终遍历列表的头部两次,这是低效的,而且不够优雅。
只需一次扫描即可完成同样的事情:
list
.dropWhile(_ != "three")
.tail
.foreach { n =>
...
}