如何在scala中的特定索引处启动foreach循环?

如何在scala中的特定索引处启动foreach循环?,scala,loops,foreach,Scala,Loops,Foreach,我是scala新手,想知道如何在scala中的特定索引处启动foreach循环?我的代码当前看起来像这样: var i = list.indexOf("three") for(n <-list){ /*do some operation*/ } var i=list.indexOf(“三”) 对于(n使用drop: for (n <- list.drop(i)) {...} 用于(n使用drop: for (n <- list.drop(i)) {...} 对于(

我是scala新手,想知道如何在scala中的特定索引处启动foreach循环?我的代码当前看起来像这样:

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

对于(n使用
drop

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

用于(n使用
drop

for (n <- list.drop(i)) {...}
对于(n好吧,你可以像另一个答案所建议的那样使用
.drop
,但在这种情况下,这样做是错误的。你最终会遍历列表的开头两次,这既低效又不雅观

您只需进行一次扫描即可完成相同的操作:

list
 .dropWhile(_ != "three")
 .tail
 .foreach { n => 
   ...
 }
好吧,你可以像另一个答案所建议的那样使用
.drop
,但在这种情况下,这样做是错误的。你最终会遍历列表的开头两次,这既低效又不雅观

您只需进行一次扫描即可完成相同的操作:

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