2016-03-20 82 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