【问题标题】:Kotlin sequence function unresolved referenceKotlin 序列函数未解析参考
【发布时间】:2016-03-20 20:03:16
【问题描述】:
  • 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 包。所以我一定做错了什么。

【问题讨论】:

    标签: kotlin lazy-sequences


    【解决方案1】:

    这个函数曾经被命名为sequence,但从1.0.0 版本开始更名为generateSequenceIterable<T>.sequence 也更名为Iterable<T>.asSequence

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

    【讨论】:

      猜你喜欢
      • 2021-02-17
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2018-10-25
      • 1970-01-01
      • 2021-11-02
      相关资源
      最近更新 更多