如何在Scala REPL中访问最后的结果?

om-*_*nom 17 scala clojure read-eval-print-loop

在python REPL中我可以做以下事情:

>>> [1,2,3,4]
[1, 2, 3, 4]
>>> sum(_)
10
Run Code Online (Sandbox Code Playgroud)

在clojure REPL中,我可以这样做:

user=> "Hello!"
"Hello!"

user=> *1
"Hello!"
Run Code Online (Sandbox Code Playgroud)

Scala REPL中有类似的东西吗?

om-*_*nom 40

是的,您可以使用点表示法来引用最后的结果:

scala> List(1,2,3,4)
res0: List[Int] = List(1, 2, 3, 4)

scala> .sum
res1: Int = 10
Run Code Online (Sandbox Code Playgroud)


Ant*_*sky 7

您可以参考前面输出一些.您可能已经注意到在Scala REPL中,结果以以下形式打印:resNNresN: Type = value

Welcome to Scala version 2.9.1.final (Java HotSpot(TM) 64-Bit Server VM, Java 1.6.0_24).
Type in expressions to have them evaluated.
Type :help for more information.

scala> List(1,2,3,4)
res0: List[Int] = List(1, 2, 3, 4)

scala> "Hello!"
res1: java.lang.String = Hello!
Run Code Online (Sandbox Code Playgroud)

嗯,这是一个真正的变量名称.在这个例子中,只要REPL打开,你就可以将列表和字符串引用(至少据我所知):resNres0res1

scala> (res0.toString + res1) toLowerCase
res2: java.lang.String = list(1, 2, 3, 4)hello!
Run Code Online (Sandbox Code Playgroud)