Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/asp.net/32.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Scala 对函数调用中的值生成迭代器_Scala_Iterator - Fatal编程技术网

Scala 对函数调用中的值生成迭代器

Scala 对函数调用中的值生成迭代器,scala,iterator,Scala,Iterator,设有一个函数foo():Int。例如,每个调用foo()返回不同的值。仅举例说明: var i: Int = 0 def foo(): Int = { i += 1 i } 我想迭代这些值。实际上,我想构造一个迭代器it,这样每次调用it.next()都会被foo()反复调用。如何做到这一点?正如我常说的,这是你的朋友 Iterator.continually(foo()) 路易斯的答案更好,但这里有另一种方法: new Iterator[Int] { override

设有一个函数
foo():Int
。例如,每个调用
foo()
返回不同的值。仅举例说明:

var i: Int = 0

def foo(): Int = {
    i += 1
    i
}
我想迭代这些值。实际上,我想构造一个
迭代器
it
,这样每次调用
it.next()
都会被
foo()
反复调用。如何做到这一点?

正如我常说的,这是你的朋友

Iterator.continually(foo())

路易斯的答案更好,但这里有另一种方法:

new Iterator[Int] {
  override def hasNext: Boolean = true
  override def next: Int = foo()
}