如何在Scala中启用延续性?

zpqajqem  于 5个月前  发布在  Scala
关注(0)|答案(2)|浏览(59)

问题说明了一切。
(Yet,关于如何访问shiftreset操作的细节多年来已经发生了变化。旧的博客条目和Stack Overflow答案可能有过时的信息。)
另请参阅What are Scala continuations and why use them?,它讨论了在拥有shiftreset后,您可能想对它们做什么。

r6vfmomb

r6vfmomb1#

Scala 2.12或2.11

最简单的方法是使用sbt。下面是要放入build.sbt的内容:

scalaVersion := "2.12.2"    
addCompilerPlugin(
  "org.scala-lang.plugins" % "scala-continuations-plugin" % "1.0.3"
    cross CrossVersion.patch)
libraryDependencies +=
  "org.scala-lang.plugins" %% "scala-continuations-library" % "1.0.3"
scalacOptions += "-P:continuations:enable"

字符串
在您的代码(或REPL)中,执行import scala.util.continuations._
您现在可以尽情使用shiftreset
请注意,我使用的是Scala版本2.12.2,因为这是该插件发布的最后一个版本。如果你想使用更新的2.12.x版本,你需要自己从源代码构建插件。如果你使用2.12.2,你可能需要在Java 8上,因为根据https://docs.scala-lang.org/overviews/jdk-compatibility/overview.html Java 11支持直到2.12.4才登陆。

Scala 2.8、2.9、2.10的历史信息

你必须用-P:continuations:enable标志启动scala(或scalac)。
在代码中,执行import scala.util.continuations._
您现在可以尽情使用shiftreset
如果您使用的是sbt 0.7,请参阅https://groups.google.com/forum/#!topic/simple-build-tool/Uj-7zl 9 n3 f4
如果您使用的是sbt 0.11+,请参阅https://gist.github.com/1302944
如果您正在使用maven,请访问http://scala-programming-language.1934581.n4.nabble.com/scala-using-continuations-plugin-with-2-8-0-RC1-and-maven-td2065949.html#a2065949

kzipqqlq

kzipqqlq2#

非SBT溶液:

scala -Xpluginsdir /.../scala/lib/ -P:continuations:enable

字符串
可以在scala 2.11.6上运行,但插件/库said将不再包含在Scala 2.12中

相关问题