18

在 python REPL 中,我可以执行以下操作:

>>> [1,2,3,4]
[1, 2, 3, 4]
>>> sum(_)
10

在 clojure REPL 我可以这样做:

user=> "Hello!"
"Hello!"

user=> *1
"Hello!"

Scala REPL 中有这样的东西吗?

4

3 回答 3

42

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

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

scala> .sum
res1: Int = 10
于 2012-08-15T15:30:17.080 回答
8

对于 some ,您可以参考之前的输出。您可能已经注意到,在 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!

嗯,这是一个真正的变量名。在此示例中,只要 REPL 处于打开状态,您就可以引用列表 as和字符串 as (至少据我所知):resNres0res1

scala> (res0.toString + res1) toLowerCase
res2: java.lang.String = list(1, 2, 3, 4)hello!
于 2012-08-15T18:27:52.537 回答
-1

我通常只是打↑</kbd> key to bring back the last line of code and carry on typing. This has the advantage of keeping the whole expression together for easy cutting-and-pasting or editing later.

于 2012-08-15T22:50:46.440 回答