对于for
理解中的日志跟踪,我使用了这样的虚拟赋值:
val ll = List(List(1,2),List(1))
for {
outer <- ll
a = Console.println(outer) // Dummy assignment makes it compile
inner <- outer
} yield inner
Run Code Online (Sandbox Code Playgroud)
这a =
一点似乎很尴尬.有更干净的方式吗?
如何在运行后台进程的情况下退出sbt中的repl控制台?以下内容:
$ sbt
> console
Welcome to Scala version 2.9.1.final (Java HotSpot(TM) 64-Bit Server VM, Java 1.6.0_26).
scala> import scala.sys.process._
import scala.sys.process._
scala> "sleep 10000".run
res0: scala.sys.process.Process = scala.sys.process.ProcessImpl$SimpleProcess@67219b8c
scala> <ctrl-d entered>
...hangs
Run Code Online (Sandbox Code Playgroud)
ctrl-c有效,但也杀了sbt.我想我正在寻找ctrl-c和ctrl-d之间的一个字母.
我敢打赌,有一些时髦的方法可以通过新的反射库和/或repl电源模式在repl中显示线性化.这些是什么?
在我的特定情况下,我试图理解ArrayBuffer实例的线性化.
(我正在尝试创建一个类似于Buffer和IndexedSeqOptimized的类,我发现编译器抱怨重写方法seq具有不兼容的类型)
scala规范第5.1.2节中描述了scala类的线性化规则.据我了解,方法覆盖按线性化顺序进行,初始化按反向线性化顺序进行.