我刚刚完成了 用 Scala 编程,我一直在研究 Scala 2.7和2.8之间的变化。其中最重要的似乎是 Continations 插件,但我不明白它有什么用,也不知道它是如何工作的。我已经看到它对异步 I/O 很有用,但是我还没有找到原因。关于这一主题的一些比较流行的资源如下:
关于堆栈溢出的问题:
不幸的是,这些引用都没有试图定义延续是用于什么的,也没有定义 shift/reset 函数应该做什么,而且我也没有找到任何这样做的引用。我还不能猜测链接文章中的任何示例是如何工作的(或者它们是做什么的) ,所以帮助我的一个方法可能是逐行浏览其中的一个示例。即使是第三篇文章中的这个简单的问题:
reset {
...
shift { k: (Int=>Int) => // The continuation k will be the '_ + 1' below.
k(7)
} + 1
}
// Result: 8
为什么结果是8? 这可能会帮助我开始。