我发现了一些对用于创建序列的新sequence
函数的引用(不再称为stream
)。 The JetBrains blog给出了以下示例:
val elements = sequence(1, { x -> x + 1})
val elements = listOf(1, 2, 3, 4).sequence()
The AgileWombat blog给出了类似的例子。
val squares = sequence(1) {it + 1}.map {it * it}
但是,当我在REPL或IDE(IDEA 2016.1)中尝试这些示例中的任何一个时,我得到以下内容:
>>> val squares = sequence(1) {it + 1}.map {it * it}
error: unresolved reference: sequence
val squares = sequence(1) {it + 1}.map {it * it}
^
error: unresolved reference: it
val squares = sequence(1) {it + 1}.map {it * it}
^
我有最新的IDE插件和最新的kotlin包下载。所以我一定做错了。
答案 0 :(得分:6)
此函数曾被命名为sequence
,但从generateSequence
版本开始,名称已更改为1.0.0
。 Iterable<T>.sequence
也被重命名为Iterable<T>.asSequence
:
val elements = generateSequence(1) { x -> x + 1 }
val elements = listOf(1, 2, 3, 4).asSequence()