在Scala中,只有一次循环。

11 浏览
0 Comments

在Scala中,只有一次循环。

我正在学习Scala。我有一个包含一个while循环的方法,直到程序未结束才运行。

但是为了测试,我只需要执行一次(或两次)这个方法。在Java中,我会使用一个可变变量,我会递减它以停止我的处理。

也许是我while循环内的一个条件,我为我的测试覆盖它。

def receive = {
    val iterator = stream.iterator()
    while (iterator.hasNext && my_condition()) {
        something_to_do
    }
}

我知道这是个愚蠢的问题,但您能给我建议吗?

admin 更改状态以发布 2023年5月23日
0
0 Comments

考虑一下理解以下内容,\n

for (_ <- iterator if my_condition()) something_to_do

\n其中每个迭代值都被忽略(注意_),只要条件成立就会调用待办部分。

0
0 Comments

尝试:

iterator.takeWhile(my_condition).foreach(something_to_do)

或者:

iterator.take(n).foreach(something_to_do)

如果你只想要前n个条目。

或者,如果something_to_do返回一个结果(而不是Unit),并且你想返回这些结果的迭代器,你可以使用:

iterator.takeWhile(my_condition).map(something_to_do)

(或者 .take(n).map(...)

0