2016-03-20 44 views
2
  • 科特林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软件包。所以我一定在做错事。

回答

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() 
+0

谢谢。这解决了它。 – melston