Scala遍历列表,除了最后一个元素

use*_*248 3 for-loop scala

使用for循环,我如何遍历列表,能够不迭代列表中的最后一个元素.

在我的情况下,我想不迭代第一个元素,并需要向后迭代,这是我有的:

        for( thing <- things.reverse) {
          //do some computation iterating over every element; 
          //break out of loop when first element is reached
        }
Run Code Online (Sandbox Code Playgroud)

Lee*_*Lee 10

您可以在撤消之前删除第一个项目:

for(thing <- things.drop(1).reverse) {
}
Run Code Online (Sandbox Code Playgroud)

对于名单,drop(1)是一样的tail,如果列表非空:

for(thing <- things.tail.reverse) {
}
Run Code Online (Sandbox Code Playgroud)

或者你可以先反过来使用dropRight:

for(thing <- things.reverse.dropRight(1)) {
}
Run Code Online (Sandbox Code Playgroud)

init如果列表非空,您也可以使用:

for(thing <- things.reverse.init) {
}
Run Code Online (Sandbox Code Playgroud)

  • 您可以使用`init`和`tail`代替`dropRight`和`drop` (3认同)