Kotlin序列函数未解析参考

时间:2016-03-20 20:03:16

标签: kotlin lazy-sequences

  • Kotlin 1.0.0
  • IDEA 2016.1

我发现了一些对用于创建序列的新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包下载。所以我一定做错了。

1 个答案:

答案 0 :(得分:6)

此函数曾被命名为sequence,但从generateSequence版本开始,名称已更改为1.0.0Iterable<T>.sequence也被重命名为Iterable<T>.asSequence

val elements = generateSequence(1) { x -> x + 1 }
val elements = listOf(1, 2, 3, 4).asSequence()