2

Scala 2.10 中 continuation 插件的状态如何;我有点困惑。以下设置在Akka 2.2-SNAPSHOT 文档中:

autoCompilerPlugins := true,
libraryDependencies <+= scalaVersion {
  v => compilerPlugin("org.scala-lang.plugins" % "continuations" % "2.10.0")
},
scalacOptions += "-P:continuations:enable",

首先,scalacOption不再适用于 2.10,并且scalaVersion实际上并没有在库依赖项中使用。如果我天真地继续使用 2.10 并且没有特殊配置(删除以上所有内容)和 Akka 2.1.0:

import concurrent.ExecutionContext.Implicits.global
import akka.dataflow._

flow { "Hello world!" } onComplete println

我收到一条错误消息,表明未启用continuations 插件。


在 Scala 2.10 中启用延续的正确方法是什么?

特别是:我怎样才能进入sbt console并尝试上面的例子flow。看来我还需要确保为 REPL 启用了编译器插件?


编辑:该scalacOptions条目确实有效,看来我有错字。

4

1 回答 1

4

有了这个build.sbt

autoCompilerPlugins := true

scalaVersion := "2.10.0"

libraryDependencies +=
  compilerPlugin("org.scala-lang.plugins" % "continuations" % "2.10.0")

scalacOptions += "-P:continuations:enable"

以下仅延续(无 Akka)示例在 REPL 中有效:

scala> import scala.util.continuations._

scala> reset { val i = shift { body: (Int => Unit) => body(5);
     | println("done") }; println(i) }
于 2013-01-18T17:57:20.787 回答